home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / amos / ADV-ITA.lha / Adventures.AMOS / Adventures.amosSourceCode
AMOS Source Code  |  1999-02-17  |  377KB  |  11,827 lines

  1. '-> Adventures Conceiver by Stefano Regattin 
  2. 'i> 12 giugno 1996 
  3. 'm> 13,14,15,16,17,19,20,21,22,26,27,28,30 giugno 1996 
  4. 'm> 1,2,3,4,5,6,13,14,15,17,18,20,21,23 luglio 1996
  5. 'm> 4,17,31 agosto 1996
  6. 'm> 7,14,15,16,28 settembre 1996 
  7. 'm> 2,8,20,21 ottobre 1996 
  8. 'm> 1,2,5 novembre 1996
  9. 'm> 23,25 febbraio 1997
  10. 'm> 1,2,3,4,5,6,7,8 marzo 1997 
  11. 'm> 29 maggio 1997 
  12. 'm> 6,12,13,14 giugno 1997 
  13. 'm> 29 agosto 1997 
  14. 'm> 10,19,28,29,30 settembre 1997
  15. 'm> 1,6,31 ottobre 1997
  16. 'm> 1,3,4,5,6,7,8,9,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 novembre 1997 
  17. 'm> 1,2,3,4,5,6,7,8,9,11,12,13,14,16,17,22 dicembre 1997 
  18. 'm> 4 gennaio 1998 
  19. 'm> 28,31 marzo 1998 
  20. 'm> 22,23,24,25,26,27,28,30 aprile 1998
  21. 'm> 1,2,5,7,8,9,10 maggio 1998 
  22. 'm> 13,15,16,17,18,19,20,21,23,26,27,28,29 giugno 1998 
  23. 'm> 2,3,5,6,7,10,11,12,13,16,17,18,19,20,21,22,25,28,30,31 luglio 1998 
  24. 'm> 2,3,4,5,6,7,9,10,15 agosto 1998  
  25. 'm> 7,11,20 settembre 1998   
  26. 'm> 5,6,7,8,9,10,14,16,17,20,23,27,28 novembre 1998        
  27. 'm> 4,5,6,7,11,15,17,22,24,29,31 dicembre 1998       
  28. 'm> 5,14 gennaio 1999  
  29. 'm> 2,10,15 febbraio 1999  
  30. '----------------------------------------------------------------------------- 
  31. 'Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0. Pu�  
  32. 'essere liberamente distribuito. Pu� essere modificato, purch� mi si citi nel
  33. 'programma finale risultante. Se si decide di utilizzarlo, spedire 10.000 lire 
  34. 'o 5 Euro al seguente nominativo ed indirizzo: Stefano Regattin, piazza Pietro 
  35. 'Gasparri 4, 20161 Milano, Italia. Buon divertimento, grazie e ciao! 
  36. '--------------------------------------------------------------------
  37.  
  38. Set Buffer 910
  39.  
  40. FILEREQUESTERMUSICA=False
  41.  
  42. Data "E' l'alba","E' mattina","E' giorno","E' pomeriggio","E' il tramonto"
  43. Data "E' sera","E' notte"
  44. Data "Il cielo si sta schiarendo","Il sole si sta alzando","Il sole ï¿½ alto"
  45. Data "Il sole sta calando","Il cielo si sta oscurando"
  46. Data "La luna si sta alzando","La luna ï¿½ alta","La luna sta calando"
  47. Data "E' nuvoloso","Sta piovendo","Sta nevicando","Sta grandinando"
  48. Data "C'� la nebbia","E' buio"
  49.  
  50. Data "N","Nord","NE","NordEst","E","Est","SE","SudEst","S","Sud","SO"
  51. Data "SudOvest","O","Ovest","NO","NordOvest","Sopra","Sopra","Sotto","Sotto"
  52.  
  53. Data "albero","alberi",100000,"albero rotto","alberi rotti",75000,%10000000,0
  54. Data "arco","archi",3000,"arco rotto","archi rotti",1500,%10001000000,9
  55. Data "arancia","arance",250,"buccia di arancia","bucce di arancia",10,1,1
  56. Data "banana","banane",300,"buccia di banana","bucce di banana",15,1,1
  57. Data "bastone","bastoni",1000,"bastone rotto","bastoni rotti",750,%1000000,2
  58. Data "cedro","cedri",200,"buccia di cedro","bucce di cedro",10,1,1
  59. Data "coltello","coltelli",2000,"coltello rotto","coltelli rotti",1000,%1000000,10
  60. Data "dattero","datteri",25,"guscio di dattero","gusci di dattero",5,1,1
  61. Data "fico","fichi",220,"buccia di fico","bucce di fico",10,1,1
  62. Data "foglietto","foglietti",2,"foglietto strappato","foglietti strappati",1,%1000,0
  63. Data "fragola","fragole",10,"picciolo di fragola","piccioli di fragola",1,1,1
  64. Data "freccia","frecce",100,"freccia rotta","freccie rotte",50,%101000000,1
  65. Data "limone","limoni",200,"buccia di limone","bucce di limone",10,1,1
  66. Data "maglia","maglie",5000,"maglia rotta","maglie rotte",2500,%100,19
  67. Data "mandarino","mandarini",175,"buccia di mandarino","bucce di mandarino",10,1,1
  68. Data "mapo","mapo",200,"buccia di mapo","bucce di mapo",10,1,1
  69. Data "masso","massi",50000,"masso rotto","massi rotti",50000,0,0
  70. Data "mela","mele",250,"torsolo di mela","torsoli di mela",50,1,1
  71. Data "pera","pere",250,"torsolo di pera","torsoli di pera",50,1,1
  72. Data "pompelmo","pompelmi",275,"buccia di pompelmo","bucce di pompelmo",10,1,1
  73. Data "spada","spade",7500,"spada rotta","spade rotte",5000,%1000000,20
  74.  
  75. Data "anarchico","anarchici","bandito","banditi","barbaro","barbari"
  76. Data "bastardo","bastardi","bravotto","bravotti","cretino","cretini"
  77. Data "debosciato","debosciati","deficiente","deficienti"
  78. Data "delinquente","delinquenti","estremista","estremisti"
  79. Data "fanatico","fanatici","fanfarone","fanfaroni","fellone","felloni"
  80. Data "fetente","fetenti","fessacchiotto","fessacchiotti","fesso","fessi"
  81. Data "guerrafondaio","guerrafondai","idiota","idioti","imbecille","imbecilli"
  82. Data "malfattore","malfattori","maniaco","maniaci","maramaldo","maramaldi"
  83. Data "negriero","negrieri","ribelle","ribelli","rimbambito","rimbambiti"
  84. Data "pervertito","pervertiti","pirata","pirati","pirlone","pirloni"
  85.  
  86. Data "Acqua",5
  87. Data "Bosco",2
  88. Data "Collina",1
  89. Data "Foresta",4
  90. Data "Ghiaccio",3
  91. Data "Montagna",2
  92. Data "Neve",3
  93. Data "Oasi",0
  94. Data "Palude",3
  95. Data "Pianura",0
  96. Data "Roccia",4
  97. Data "Sabbia",1
  98.  
  99. Data "Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0"
  100. Data ". Pu� essere liberamente distribuito. Pu� essere modificato, purch� mi "
  101. Data "si citi nel programma finale risultante. Se si decide di utilizzarlo, s"
  102. Data "pedire 10.000 lire o 5 Euro al seguente nominativo ed indirizzo: Stefan"
  103. Data "o Regattin, piazza Pietro Gasparri 4 - U327, 20161 Milano, Italia. Buon"
  104. Data " divertimento, grazie e ciao!"
  105.  
  106. MESSAGGIO3$="Adventures Conceiver by Stefano Regattin"
  107.  
  108. PROLOGO$="L'avventura preimpostata ï¿½ dimostrativa. Non c'� uno scopo definito"
  109. PROLOGO$=PROLOGO$+". Gli altri personaggi prenderanno un'oggetto e cercherann"
  110. PROLOGO$=PROLOGO$+"o di usarlo su un personaggio presente dove si trovano, pe"
  111. PROLOGO$=PROLOGO$+"r cui anche sul tuo personaggio; dopo di ci� si muoveranno"
  112. PROLOGO$=PROLOGO$+". Usa tutti i comandi e guarda cosa succede."
  113.  
  114. _INTERFACCIA$="BAse 160,40;"
  115. _INTERFACCIA$=_INTERFACCIA$+"SIze 320,120;"
  116. _INTERFACCIA$=_INTERFACCIA$+"INk 1,0,0;"
  117. _INTERFACCIA$=_INTERFACCIA$+"GraphicBox 0,0,319,119;"
  118. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Adventures Conceiver 1.2';"
  119. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,8,0 VA,0,1;"
  120. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'by Stefano Regattin';"
  121. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,24,0 VA,0,1;"
  122. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Se decidi di utilizzarlo, spedisci';"
  123. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,40,0 VA,0,1;"
  124. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'diecimila lire o cinque Euro';"
  125. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,56,0 VA,0,1;"
  126. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'al seguente indirizzo:';"
  127. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,72,0 VA,0,1;"
  128. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'piazza Pietro Gasparri, 4 - U327';"
  129. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,88,0 VA,0,1;"
  130. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'20161 Milano - Italia';"
  131. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,104,0 VA,0,1;"
  132. _INTERFACCIA$=_INTERFACCIA$+"RunUntil 0,4;"
  133. _INTERFACCIA$=_INTERFACCIA$+"EXit;"
  134.  
  135. BANCO=65535 : BANCOMODULO=1023 : NUMMASE=31 : NUMMASCO=255 : NUMMASL=255
  136. NUMMASO=255 : NUMMASP=255 : NUMMASR=255 : NUMMASS=255 : PESOS=1
  137. '----------------------------------------------------------------------------
  138. 'Per un difetto di AMOS Professional non si pu� assegnare un valore maggiore 
  139. ' di 1023 al banco di memoria da usare con il comando Track Load e Track Play
  140. '----------------------------------------------------------------------------- 
  141. Global EPILOGO$,FILE$,MESSAGGIO1$,MESSAGGIO3$,MERITI$,NOMEFILE$,PROLOGO$
  142. Global _INTERFACCIA$
  143. Global ANEMICI,BANCO,BANCOMODULO,CATEGORIADEGLIOGGETTI,CARATTEREMESSAGGIO
  144. Global COMPIUTAAZIONE,CONDIZIONEG,EDIFICIO,FILEREQUESTERMUSICA
  145. Global INEMICITISVEGLIANO,INEMICISVEGLIANOPERSONAGGIOP,LUOGO
  146. Global M0DOVISUALIZZAZIONETEMPO,M0DIFICA,NUMEROCO,NUMEROE,NUMEROL,NUMERON
  147. Global NUMEROO,NUMEROP,NUMEROR,NUMMASCO,NUMMASE,NUMMASL,NUMMASO,NUMMASP
  148. Global NUMMASR,NUMMASS,OGGETTO,OGGETTOUSANTE,OGGETTOUSATO,PERSONAGGIO
  149. Global PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO,PESOS,REGIONE,SENZAMEMORIA,STANZA
  150. Global TEMP0TRASCORSO,ULTIMALINEA,_MUSICA
  151. Dim CONDIZIONEG$(13),DESCRIZIONECO$(NUMMASCO),DESCRIZIONEE$(NUMMASE)
  152. Dim DESCRIZIONEL$(NUMMASL),DESCRIZIONEP$(NUMMASP)
  153. Dim DESCRIZIONES$(NUMMASS,NUMMASE),DREZIONE$(9),DREZIONEL$(9),FASEG$(6)
  154. Dim NOMEE$(NUMMASE),NOMEL$(NUMMASL),NOMEP$(NUMMASP),NOMEPCO$(NUMMASCO)
  155. Dim NOMEPN$(27),NOMEPRO$(NUMMASCO),NOMER$(NUMMASR),NOMES$(NUMMASS,NUMMASE)
  156. Dim NOMESCO$(NUMMASCO),NOMESN$(27),NOMESRO$(NUMMASCO),TESTOO$(1),TIPOL$(11)
  157. Dim AZIONEP(7,NUMMASP),CATEGORIAO(NUMMASO),CAMMINOP(NUMMASP)
  158. Dim C0STITUZIONEP(NUMMASP),DESTREZZAP(NUMMASP),DREZIONEL(9,NUMMASL)
  159. Dim DREZIONEPRESAP(NUMMASP),DREZIONEOPPOSTAAQUELLAPRESAP(NUMMASP)
  160. Dim DREZIONES(9,NUMMASS,NUMMASE),FINEA(7,NUMMASP),F0RZAP(NUMMASP)
  161. Dim INIZIOSONNOP(NUMMASP),LUOGODIDESTINAZIONEP(NUMMASP),NUMEROS(NUMMASE)
  162. Dim OGGETTIDATIOLASCIATI(NUMMASCO),OGGETTIDELPERSONAGGIO0(NUMMASCO)
  163. Dim OGGETTIDIA(NUMMASCO),OGGETTINELLUOGO(NUMMASCO),PARAAAZIONEP(7,NUMMASP)
  164. Dim PARABAZIONEP(7,NUMMASP),PARACAZIONEP(7,NUMMASP),PARATIPOCO(NUMMASCO)
  165. Dim PARATIPOL(11),PERSONAGGIOVISIBILEP(NUMMASP),PESOCO(NUMMASCO)
  166. Dim PESONETTOP(NUMMASP),PESOP(NUMMASP),PESORESTOCO(NUMMASCO)
  167. Dim POSIZIONEA(NUMMASP),POSIZIONEE(NUMMASL),POSIZIONEO(NUMMASO)
  168. Dim POSIZIONEP(NUMMASP),REGIONEL(NUMMASL),RESISTENZAP(NUMMASP)
  169. Dim RESTIDELPERSONAGGIO0(NUMMASCO),RESTIDIA(NUMMASCO),RESTINELLUOGO(NUMMASCO)
  170. Dim SOLDIL(NUMMASL),SOLDIP(NUMMASP),SOLDIS(NUMMASS,NUMMASE)
  171. Dim SOLDIRICEVUTIP(NUMMASP),SONNOP(NUMMASP),TEMP0DIATTRAVERSAMENTOP(NUMMASP)
  172. Dim TESTOO(NUMMASO),TIPOCO(NUMMASCO),TIPOL(NUMMASL),TIPOO(NUMMASO)
  173. Dim TIPOP(NUMMASP)
  174. Global CONDIZIONEG$(),DESCRIZIONECO$(),DESCRIZIONEE$(),DESCRIZIONEL$()
  175. Global DESCRIZIONEP$(),DESCRIZIONES$(),DREZIONE$(),DREZIONEL$(),FASEG$()
  176. Global NOMEE$(),NOMEL$(),NOMEP$(),NOMEPCO$(),NOMEPN$(),NOMEPRO$(),NOMER$()
  177. Global NOMES$(),NOMESCO$(),NOMESN$(),NOMESRO$(),TESTOO$(),TIPOL$()
  178. Global AZIONEP(),CATEGORIAO(),CAMMINOP(),C0STITUZIONEP(),DESTREZZAP()
  179. Global DREZIONEL(),DREZIONEPRESAP(),DREZIONEOPPOSTAAQUELLAPRESAP(),DREZIONES()
  180. Global FINEA(),F0RZAP(),INIZIOSONNOP(),LUOGODIDESTINAZIONEP(),NUMEROS()
  181. Global OGGETTIDATIOLASCIATI(),OGGETTIDELPERSONAGGIO0(),OGGETTIDIA()
  182. Global OGGETTINELLUOGO(),PARAAAZIONEP(),PARABAZIONEP(),PARACAZIONEP()
  183. Global PARATIPOCO(),PARATIPOL(),PERSONAGGIOVISIBILEP(),PESOCO(),PESONETTOP()
  184. Global PESOP(),PESORESTOCO(),POSIZIONEA(),POSIZIONEE(),POSIZIONEO()
  185. Global POSIZIONEP(),REGIONEL(),RESISTENZAP(),RESTIDELPERSONAGGIO0(),RESTIDIA()
  186. Global RESTINELLUOGO(),SOLDIL(),SOLDIP(),SOLDIS(),SOLDIRICEVUTIP(),SONNOP()
  187. Global TEMP0DIATTRAVERSAMENTOP(),TESTOO(),TIPOCO(),TIPOL(),TIPOO(),TIPOP()
  188. Proc SETTASCHERMO
  189. Proc ARCOBALENO
  190. For A=0 To 6
  191.  Read DATO$ : FASEG$(A)=DATO$
  192. Next A
  193. For A=0 To 13
  194.  Read DATO$ : CONDIZIONEG$(A)=DATO$
  195. Next A
  196. For A=0 To 9
  197.  Read DATO$ : DREZIONEL$(A)=DATO$
  198.  Read DATO$ : DREZIONE$(A)=DATO$
  199. Next A
  200. Proc INIZIALIZZALEVARIABILI
  201. NUMEROCO=20 : NUMEROE=0 : NUMEROL=127 : NUMEROO=127 : NUMEROP=20 : NUMEROR=1
  202. NUMEROS(0)=0
  203. Proc _ORDINALUOGHI[127,8,0,True]
  204. For A=0 To NUMEROCO
  205.  Read DATO$ : NOMESCO$(A)=DATO$
  206.  Read DATO$ : NOMEPCO$(A)=DATO$
  207.  Read DATO : PESOCO(A)=DATO
  208.  Read DATO$ : NOMESRO$(A)=DATO$
  209.  Read DATO$ : NOMEPRO$(A)=DATO$
  210.  Read DATO : PESORESTOCO(A)=DATO
  211.  Read DATO : TIPOCO(A)=DATO
  212.  Read DATO : PARATIPOCO(A)=DATO
  213. Next A
  214. If NUMEROE>-1
  215.  For A=0 To NUMEROE
  216.   POSIZIONEE(A)=Rnd(NUMEROL)
  217.   For B=0 To NUMEROS(A)
  218.    SOLDIS(B,A)=Rnd(19)
  219.   Next B
  220.  Next A
  221. End If 
  222. For A=0 To 27
  223.  Read DATO$ : NOMESN$(A)=DATO$
  224.  Read DATO$ : NOMEPN$(A)=DATO$
  225. Next A
  226. For A=0 To 11
  227.  Read DATO$ : TIPOL$(A)=DATO$
  228.  Read DATO : PARATIPOL(A)=DATO
  229. Next A
  230. Randomize Timer
  231. For A=0 To NUMEROL
  232.  TIPOL(A)=Rnd(11)
  233.  SOLDIL(A)=Rnd(1)
  234. Next A
  235. For A=0 To NUMEROO
  236.  CATEGORIAO(A)=Rnd(NUMEROCO)
  237.  POSIZIONEO(A)=Rnd(NUMEROL)
  238. Next A
  239. For A=0 To NUMEROP
  240.  C0STITUZIONEP(A)=Rnd(99)+1
  241.  DESTREZZAP(A)=Rnd(99)+1
  242.  F0RZAP(A)=Rnd(99)+1
  243.  PESOP(A)=Rnd(70)+50
  244.  POSIZIONEP(A)=Rnd(NUMEROL)
  245.  LUOGODIDESTINAZIONEP(A)=-1
  246.  DREZIONEPRESAP(A)=-1
  247.  DREZIONEOPPOSTAAQUELLAPRESAP(A)=0
  248.  RESISTENZAP(A)=C0STITUZIONEP(A)
  249.  DATO=Rnd(1) : If DATO=1 Then Bset 1,TIPOP(A) Else Bclr 1,TIPOP(A)
  250.  DATO=Rnd(1) : If DATO=1 Then Bset 3,TIPOP(A) Else Bclr 3,TIPOP(A)
  251.  DATO=Rnd(9)+1
  252.  SOLDIP(A)=DATO
  253.  Add PESONETTOP(A),DATO*PESOS
  254.  If A>0
  255.   INIZIOSONNOP(A)=Rnd(360)+1080
  256.   AZIONEP(0,A)=17
  257.   PARAAAZIONEP(0,A)=1
  258.   AZIONEP(1,A)=27
  259.   PARAAAZIONEP(1,A)=256
  260.   AZIONEP(2,A)=27
  261.   PARAAAZIONEP(2,A)=256
  262.   AZIONEP(3,A)=27
  263.   PARAAAZIONEP(3,A)=256
  264.   AZIONEP(4,A)=27
  265.   PARAAAZIONEP(4,A)=256
  266.   AZIONEP(5,A)=27
  267.   PARAAAZIONEP(5,A)=256
  268.   AZIONEP(6,A)=27
  269.   PARAAAZIONEP(6,A)=256
  270.   AZIONEP(7,A)=16
  271.  End If 
  272. Next A
  273. '----------------
  274. 'Scopo del gioco 
  275. AZIONEP(7,0)=0
  276. '------------
  277. 'PARametro A 
  278. PARAAAZIONEP(7,0)=0
  279. '------------
  280. 'PARametro B 
  281. PARABAZIONEP(7,0)=0
  282. '------------
  283. 'PARametro C 
  284. PARACAZIONEP(7,0)=0
  285. '------------------- 
  286. For A=64 To 127
  287.  REGIONEL(A)=1
  288. Next A
  289. Read DATO$ : MERITI$=DATO$
  290. Read DATO$ : MERITI$=MERITI$+DATO$
  291. Read DATO$ : MERITI$=MERITI$+DATO$
  292. Read DATO$ : MERITI$=MERITI$+DATO$
  293. Read DATO$ : MERITI$=MERITI$+DATO$
  294. Read DATO$ : MERITI$=MERITI$+DATO$
  295. TESTOO$(0)=MERITI$
  296. If _MUSICA=True Then Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  297. TASTOPREMUTO$="d"
  298. Repeat 
  299.  If TASTOPREMUTO$="d" Then Proc MOSTRAILDESTINODELGIOCO
  300.  If TASTOPREMUTO$="e" Then Proc MOSTRAGLIEDIFICI
  301.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Proc MOSTRALESTANZE
  302.  If TASTOPREMUTO$="k" Then Proc MOSTRALECATEGORIEDEGLIOGGETTI
  303.  If TASTOPREMUTO$="l" Then Proc MOSTRAILUOGHI
  304.  If TASTOPREMUTO$="o" Then Proc MOSTRAGLIOGGETTI
  305.  If TASTOPREMUTO$="p" Then Proc MOSTRAIPERSONAGGI
  306.  If TASTOPREMUTO$="r" Then Proc MOSTRALEREGIONI
  307. Until TASTOPREMUTO$=Chr$(27)
  308. Track Loop Of : Track Stop : Rainbow Del 0 : Screen Close 0
  309. Erase BANCOMODULO : End 
  310. Procedure ARCOBALENO
  311. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  312. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  313. Set Rainbow 0,1,16,"","",""
  314. For LINEA=0 To 15 : Read DATO : Rain(0,LINEA)=DATO : Next LINEA
  315. If Ntsc Then LUNGHEZZAARCOBALENO=223 Else LUNGHEZZAARCOBALENO=271
  316. Rainbow 0,2,0,LUNGHEZZAARCOBALENO
  317. End Proc
  318. Procedure AZIONIALTRIPERSONAGGI
  319. While COMPIUTAAZIONE>0
  320.  For P=1 To NUMEROP
  321.   If RESISTENZAP(P)>0
  322.    If Btst(2,TIPOP(P))=False
  323.     Proc FAIDORMIREGLIALTRIPERSONAGGI[P]
  324.     If AZIONEP(POSIZIONEA(P),P)>0
  325.      If AZIONEP(POSIZIONEA(P),P)=1
  326.       If FINEA(POSIZIONEA(P),P)=False
  327.        Proc DAIAPAO[POSIZIONEA(P),P]
  328.       End If 
  329.      Else If AZIONEP(POSIZIONEA(P),P)=2
  330.       If FINEA(POSIZIONEA(P),P)=False
  331.        Proc DAIAPAOB[POSIZIONEA(P),P]
  332.       End If 
  333.      Else If AZIONEP(POSIZIONEA(P),P)=3
  334.       If FINEA(POSIZIONEA(P),P)=False
  335.        Proc DAIAPAOTB[POSIZIONEA(P),P]
  336.       End If 
  337.      Else If AZIONEP(POSIZIONEA(P),P)=4
  338.       If FINEA(POSIZIONEA(P),P)=False
  339.        Proc DAIAPAP[POSIZIONEA(P),P]
  340.       End If 
  341.      Else If AZIONEP(POSIZIONEA(P),P)=5
  342.       If FINEA(POSIZIONEA(P),P)=False
  343.        Proc DAIAPPA[POSIZIONEA(P),P]
  344.       End If 
  345.      Else If AZIONEP(POSIZIONEA(P),P)=6
  346.       If FINEA(POSIZIONEA(P),P)=False
  347.        Proc DAIAPABO[POSIZIONEA(P),P]
  348.       End If 
  349.      Else If AZIONEP(POSIZIONEA(P),P)=7
  350.       If FINEA(POSIZIONEA(P),P)=False
  351.        Proc DAIAPABOC[POSIZIONEA(P),P]
  352.       End If 
  353.      Else If AZIONEP(POSIZIONEA(P),P)=8
  354.       If FINEA(POSIZIONEA(P),P)=False
  355.        Proc DAIAPABOTC[POSIZIONEA(P),P]
  356.       End If 
  357.      Else If AZIONEP(POSIZIONEA(P),P)=9
  358.       If FINEA(POSIZIONEA(P),P)=False
  359.        Proc DAIAPABP[POSIZIONEA(P),P]
  360.       End If 
  361.      Else If AZIONEP(POSIZIONEA(P),P)=10
  362.       If FINEA(POSIZIONEA(P),P)=False
  363.        Proc DAIAPAPB[POSIZIONEA(P),P]
  364.       End If 
  365. '    ------------------------------------  
  366.      Else If AZIONEP(POSIZIONEA(P),P)=11
  367.       If FINEA(POSIZIONEA(P),P)=False
  368.        Proc LASCIAAO[POSIZIONEA(P),P]
  369.       End If 
  370.      Else If AZIONEP(POSIZIONEA(P),P)=12
  371.       If FINEA(POSIZIONEA(P),P)=False
  372.        Proc LASCIAAOB[POSIZIONEA(P),P]
  373.       End If 
  374.      Else If AZIONEP(POSIZIONEA(P),P)=13
  375.       If FINEA(POSIZIONEA(P),P)=False
  376.        Proc LASCIAAOTB[POSIZIONEA(P),P]
  377.       End If 
  378.      Else If AZIONEP(POSIZIONEA(P),P)=14
  379.       If FINEA(POSIZIONEA(P),P)=False
  380.        Proc LASCIAAP[POSIZIONEA(P),P]
  381.       End If 
  382.      Else If AZIONEP(POSIZIONEA(P),P)=15
  383.       If FINEA(POSIZIONEA(P),P)=False
  384.        Proc LASCIAPA[POSIZIONEA(P),P]
  385.       End If 
  386. '    ------------------------------------  
  387.      Else If AZIONEP(POSIZIONEA(P),P)=16
  388.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  389.        Proc MUOVITIP[POSIZIONEA(P),P]
  390.       End If 
  391. '    ------------------------------------  
  392.      Else If AZIONEP(POSIZIONEA(P),P)=17
  393.       If FINEA(POSIZIONEA(P),P)=False
  394.        Proc PRENDIAO[POSIZIONEA(P),P]
  395.       End If 
  396.      Else If AZIONEP(POSIZIONEA(P),P)=18
  397.       If FINEA(POSIZIONEA(P),P)=False
  398.        Proc PRENDIAOB[POSIZIONEA(P),P]
  399.       End If 
  400.      Else If AZIONEP(POSIZIONEA(P),P)=19
  401.       If FINEA(POSIZIONEA(P),P)=False
  402.        Proc PRENDIAOTB[POSIZIONEA(P),P]
  403.       End If 
  404.      Else If AZIONEP(POSIZIONEA(P),P)=20
  405.       If FINEA(POSIZIONEA(P),P)=False
  406.        Proc PRENDIAP[POSIZIONEA(P),P]
  407.       End If 
  408.      Else If AZIONEP(POSIZIONEA(P),P)=21
  409.       If FINEA(POSIZIONEA(P),P)=False
  410.        Proc PRENDIPA[POSIZIONEA(P),P]
  411.       End If 
  412. '    ------------------------------------  
  413.      Else If AZIONEP(POSIZIONEA(P),P)=22
  414.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  415.        Proc SEGUI[POSIZIONEA(P),P]
  416.       End If 
  417.      Else If AZIONEP(POSIZIONEA(P),P)=23
  418.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  419.        Proc SEGUIPA[POSIZIONEA(P),P]
  420.       End If 
  421. '    ------------------------------------  
  422.      Else If AZIONEP(POSIZIONEA(P),P)=24
  423.       If FINEA(POSIZIONEA(P),P)=False
  424.        Proc USAUNOSUAO[POSIZIONEA(P),P]
  425.       End If 
  426.      Else If AZIONEP(POSIZIONEA(P),P)=25
  427.       If FINEA(POSIZIONEA(P),P)=False
  428.        Proc USAUNOSUAOB[POSIZIONEA(P),P]
  429.       End If 
  430.      Else If AZIONEP(POSIZIONEA(P),P)=26
  431.       If FINEA(POSIZIONEA(P),P)=False
  432.        Proc USAUNOSUAOTB[POSIZIONEA(P),P]
  433.       End If 
  434.      Else If AZIONEP(POSIZIONEA(P),P)=27
  435.       If FINEA(POSIZIONEA(P),P)=False
  436.        Proc USAUNOSUAP[POSIZIONEA(P),P]
  437.       End If 
  438.      Else If AZIONEP(POSIZIONEA(P),P)=28
  439.       If FINEA(POSIZIONEA(P),P)=False
  440.        Proc USAUNOSUPA[POSIZIONEA(P),P]
  441.       End If 
  442.      Else If AZIONEP(POSIZIONEA(P),P)=29
  443.       If FINEA(POSIZIONEA(P),P)=False
  444.        Proc USAUNOASUBO[POSIZIONEA(P),P]
  445.       End If 
  446.      Else If AZIONEP(POSIZIONEA(P),P)=30
  447.       If FINEA(POSIZIONEA(P),P)=False
  448.        Proc USAUNOASUBOC[POSIZIONEA(P),P]
  449.       End If 
  450.      Else If AZIONEP(POSIZIONEA(P),P)=31
  451.       If FINEA(POSIZIONEA(P),P)=False
  452.        Proc USAUNOASUBOTC[POSIZIONEA(P),P]
  453.       End If 
  454.      Else If AZIONEP(POSIZIONEA(P),P)=32
  455.       If FINEA(POSIZIONEA(P),P)=False
  456.        Proc USAUNOASUBP[POSIZIONEA(P),P]
  457.       End If 
  458.      Else If AZIONEP(POSIZIONEA(P),P)=33
  459.       If FINEA(POSIZIONEA(P),P)=False
  460.        Proc USAUNOASUPB[POSIZIONEA(P),P]
  461.       End If 
  462.      Else If AZIONEP(POSIZIONEA(P),P)=34
  463.       If FINEA(POSIZIONEA(P),P)=False
  464.        Proc USAUNOTASUBO[POSIZIONEA(P),P]
  465.       End If 
  466.      Else If AZIONEP(POSIZIONEA(P),P)=35
  467.       If FINEA(POSIZIONEA(P),P)=False
  468.        Proc USAUNOTASUBOC[POSIZIONEA(P),P]
  469.       End If 
  470.      Else If AZIONEP(POSIZIONEA(P),P)=36
  471.       If FINEA(POSIZIONEA(P),P)=False
  472.        Proc USAUNOTASUBOTC[POSIZIONEA(P),P]
  473.       End If 
  474.      Else If AZIONEP(POSIZIONEA(P),P)=37
  475.       If FINEA(POSIZIONEA(P),P)=False
  476.        Proc USAUNOTASUBP[POSIZIONEA(P),P]
  477.       End If 
  478.      Else If AZIONEP(POSIZIONEA(P),P)=38
  479.       If FINEA(POSIZIONEA(P),P)=False
  480.        Proc USAUNOTASUPB[POSIZIONEA(P),P]
  481.       End If 
  482. '    ------------------------------------  
  483.      Else If AZIONEP(POSIZIONEA(P),P)=39
  484.       If FINEA(POSIZIONEA(P),P)=False
  485.        Proc USATIUNO[POSIZIONEA(P),P]
  486.       End If 
  487.      Else If AZIONEP(POSIZIONEA(P),P)=40
  488.       If FINEA(POSIZIONEA(P),P)=False
  489.        Proc USATIUNOA[POSIZIONEA(P),P]
  490.       End If 
  491.      Else If AZIONEP(POSIZIONEA(P),P)=41
  492.       If FINEA(POSIZIONEA(P),P)=False
  493.        Proc USATIUNOTA[POSIZIONEA(P),P]
  494.       End If 
  495.      End If 
  496.     End If 
  497.     Add POSIZIONEA(P),1,0 To 7
  498.    Else 
  499.     Dec SONNOP(P)
  500.     If SONNOP(P)=0
  501.      Bclr 2,TIPOP(P)
  502.     End If 
  503.    End If 
  504.   End If 
  505.  Next P
  506.  P=Rnd(NUMEROP-1)+1
  507.  PERSONAGGIOPSITROVADENTROUNEDIFICIO=POSIZIONEP(P)/$10000
  508.  If ANEMICI=True and PERSONAGGIOPSITROVADENTROUNEDIFICIO=0
  509.   NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  510.   NEMICI=Max(NEMICI,0)
  511.   If NEMICI=0
  512.    If Btst(2,TIPOP(P))=True
  513.     Bclr 2,TIPOP(P) : INEMICISVEGLIANOPERSONAGGIOP=True
  514.     Proc NEMICI[P]
  515.    Else 
  516.     INEMICISVEGLIANOPERSONAGGIOP=False
  517.     Proc NEMICI[P]
  518.    End If 
  519.   End If 
  520.  End If 
  521.  Dec COMPIUTAAZIONE
  522. Wend 
  523. End Proc
  524. Procedure CARATTERISTICHE
  525. Cls 
  526. Print "Caratteristiche di ";NOMEP$(0);">"
  527. Print "Costituzione "; Using "##### ";C0STITUZIONEP(0);
  528. If C0STITUZIONEP(0)=1 Then Print "punto" Else Print "punti"
  529. Print "Destrezza    "; Using "##### ";DESTREZZAP(0);
  530. If DESTREZZAP(0)=1 Then Print "punto" Else Print "punti"
  531. Print "Forza        "; Using "##### ";F0RZAP(0);
  532. If F0RZAP(0)=1 Then Print "punto" Else Print "punti"
  533. Print "Peso         "; Using "##### ";PESOP(0);
  534. If PESOP(0)=1 Then Print "chilo" Else Print "chili"
  535. Print "Resistenza   "; Using "##### ";RESISTENZAP(0);
  536. If RESISTENZAP(0)=1 Then Print "punto" Else Print "punti"
  537. Print "Sesso ";
  538. If Btst(1,TIPOP(0))=True Then Print "femminile" Else Print "maschile"
  539. For A=0 To NUMEROO
  540.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  541.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  542.    Print NOMEP$(0);" indossa 1 ";NOMESCO$(CATEGORIAO(A))
  543.    Exit 
  544.   End If 
  545.  End If 
  546. Next A
  547. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  548. End Proc
  549. Procedure CARICAUNFILE
  550. Show On : Cls 
  551. FILE$=Fsel$("*.Adv",NOMEFILE$,"Carica un file","di Adventures Conceiver")
  552. If Exist(FILE$)
  553.  Open In 1,FILE$
  554.  MARCATORE$=Input$(1,21)
  555.  LUNGHEZZABANCO=Lof(1)
  556.  Close 1
  557.  MEMORIA=Chip Free+Fast Free
  558.  If LUNGHEZZABANCO>MEMORIA
  559.   Proc TIC["Non c'� memoria sufficiente per caricare il file",ULTIMALINEA-1]
  560.   Proc TIC[FILE$,ULTIMALINEA] : Proc _ASPETTA
  561.  Else 
  562.   SEPARATORE=Instr(FILE$,":") : POSIZIONE=1
  563.   For A=1 To Len(FILE$)
  564.    If Instr(FILE$,"/",POSIZIONE)>0
  565.     SEPARATORECASSETTO=Instr(FILE$,"/",POSIZIONE)
  566.     POSIZIONE=SEPARATORECASSETTO+1
  567.    End If 
  568.   Next A
  569.   SEPARATORE=Max(SEPARATORE,SEPARATORECASSETTO)
  570.   PERCORSO$=Left$(FILE$,SEPARATORE)
  571.   If Right$(PERCORSO$,1)="/"
  572.    PERCORSO$=Left$(PERCORSO$,Len(PERCORSO$)-1)
  573.   End If 
  574.   NOMEFILE$=Right$(FILE$,Len(FILE$)-SEPARATORE)
  575.   If MARCATORE$="Adventures Conceiver"+Chr$(10)
  576.    Reserve As Work BANCO,LUNGHEZZABANCO
  577.    Bload FILE$,Start(BANCO)
  578.    MESSAGGIO1$="* "+NOMEFILE$+Str$(LUNGHEZZABANCO)+" Byte *"
  579.   Else 
  580.    Proc TIC[NOMEFILE$,ULTIMALINEA-1]
  581.    Proc TIC["Non ï¿½ un file di Adventures Conceiver",ULTIMALINEA] : Proc _ASPETTA
  582.   End If 
  583.  End If 
  584. End If 
  585. Hide On 
  586. End Proc
  587. Procedure CONDIZIONEDELGIORNO
  588. Print "Descrizione giornata>";
  589. If CONDIZIONEG=0
  590.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  591.  If M1NUTI<60 : Rem dalle 0:00 alle 0:59 
  592.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  593.  Else If M1NUTI>59 and M1NUTI<300 : Rem dalle 1:00 alle 4:59 
  594.   Print CONDIZIONEG$(7) : Rem La luna sta calando  
  595.  Else If M1NUTI>299 and M1NUTI<360 : Rem dalle 5:00 alle 5:59 
  596.   Print CONDIZIONEG$(0) : Rem Il cielo si sta schiarendo 
  597.  Else If M1NUTI>359 and M1NUTI<600 : Rem dalle 6:00 alle 9:59 
  598.   Print CONDIZIONEG$(1) : Rem Il sole si sta alzando 
  599.  Else If M1NUTI>599 and M1NUTI<900 : Rem dalle 10:00 alle 14:59   
  600.   Print CONDIZIONEG$(2) : Rem Il sole ï¿½ alto 
  601.  Else If M1NUTI>899 and M1NUTI<1140 : Rem dalle 15:00 alle 18:59   
  602.   Print CONDIZIONEG$(3) : Rem Il sole sta calando
  603.  Else If M1NUTI>1139 and M1NUTI<1200 : Rem dalle 19:00 alle 19:59 
  604.   Print CONDIZIONEG$(4) : Rem Il cielo si sta oscurando
  605.  Else If M1NUTI>1199 and M1NUTI<1380 : Rem dalle 20:00 alle 22:59 
  606.   Print CONDIZIONEG$(5) : Rem La luna si sta alzando 
  607.  Else : Rem dalle 23:00 alle 23:59 
  608.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  609.  End If 
  610. Else If CONDIZIONEG=1
  611.  Print CONDIZIONEG$(8) : Rem E' nuvoloso
  612. Else If CONDIZIONEG=2
  613.  Print CONDIZIONEG$(9) : Rem Sta piovendo 
  614. Else If CONDIZIONEG=3
  615.  Print CONDIZIONEG$(10) : Rem Sta nevicando  
  616. Else If CONDIZIONEG=4
  617.  Print CONDIZIONEG$(11) : Rem Sta grandinando  
  618. Else If CONDIZIONEG=5
  619.  Print CONDIZIONEG$(12) : Rem C'� la nebbia
  620. Else If CONDIZIONEG=6
  621.  Print CONDIZIONEG$(13) : Rem E' buio  
  622. End If 
  623. End Proc
  624. Procedure CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  625. SCOPODELGIOCO=AZIONEP(7,0)
  626. PARA=PARAAAZIONEP(7,0)
  627. PARB=PARABAZIONEP(7,0)
  628. PARC=PARACAZIONEP(7,0)
  629. If SCOPODELGIOCO=0
  630.  Pop Proc
  631. Else If SCOPODELGIOCO=1
  632. 'Dai al personaggio PARA PARB oggetti PARC 
  633.  OGGETTIDIA(PARC)=0
  634.  If OGGETTIDATIOLASCIATI(PARC)=PARB
  635.   For A=0 To NUMEROO
  636.    If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  637.     If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  638.      Inc OGGETTIDIA(CATEGORIAO(A))
  639.     End If 
  640.    End If 
  641.   Next A
  642.   If OGGETTIDIA(PARC)=PARB
  643.    FINEA(7,0)=True
  644.   End If 
  645.  End If 
  646. Else If SCOPODELGIOCO=2
  647. 'Dai al personaggio PARA PARB oggetti tipo PARC  
  648.  For A=0 To NUMEROO
  649.   If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  650.    If TIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  651.     Inc TIPODIOGGETTOPARC
  652.    End If 
  653.   End If 
  654.  Next A
  655.  If TIPODIOGGETTOPARC=PARB
  656.   FINEA(7,0)=True
  657.  End If 
  658. Else If SCOPODELGIOCO=3
  659. 'Dai a PARA PARB soldi 
  660.  If SOLDIRICEVUTIP(PARA)=PARB
  661.   FINEA(7,0)=True
  662.  End If 
  663. Else If SCOPODELGIOCO=4
  664. 'Guadagna PARA soldi 
  665.  If SOLDIP(0)>=PARA
  666.   FINEA(7,0)=True
  667.  End If 
  668. Else If SCOPODELGIOCO=5
  669. 'Lascia nel luogo PARA PARB oggetti PARC 
  670.  OGGETTIDIA(PARC)=0
  671.  For A=0 To NUMEROO
  672.   If POSIZIONEO(A)=PARA
  673.    If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  674.     Inc OGGETTIDIA(PARC)
  675.    End If 
  676.   End If 
  677.  Next A
  678.  If OGGETTIDIA(PARC)>=PARB
  679.   FINEA(7,0)=True
  680.  End If 
  681. Else If SCOPODELGIOCO=6
  682. 'Lascia nel luogo PARA PARB oggetti tipo PARC  
  683.  For A=0 To NUMEROO
  684.   If POSIZIONEO(A)=PARA
  685.    If PARATIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  686.     Inc OGGETTIDELTIPOPARC
  687.    End If 
  688.   End If 
  689.  Next A
  690.  If OGGETTIDELTIPOPARC>=PARB
  691.   FINEA(7,0)=True
  692.  End If 
  693. Else If SCOPODELGIOCO=7
  694. 'Lascia nel luogo PARA PARB soldi
  695.  If SOLDIL(PARA)>=PARB
  696.   FINEA(7,0)=True
  697.  End If 
  698. Else If SCOPODELGIOCO=8
  699. 'Prendi PARA oggetti PARB
  700.  If OGGETTIDELPERSONAGGIO0(PARB)=PARA
  701.   FINEA(7,0)=True
  702.  End If 
  703. Else If SCOPODELGIOCO=9
  704. 'Prendi  PARA oggetti tipo PARB
  705.  For A=0 To NUMEROO
  706.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  707.    If TIPOCO(CATEGORIAO(A))=PARB and Btst(1,TIPOO(A))=False
  708.     Inc TIPODIOGGETTOPARB
  709.    End If 
  710.   End If 
  711.  Next A
  712.  If TIPODIOGGETTOPARB=PARA
  713.   FINEA(7,0)=True
  714.  End If 
  715. Else If SCOPODELGIOCO=10
  716. 'Trova il personaggio PARA 
  717.  Proc PERSONAGGIOVISIBILE[PARA]
  718.  If PERSONAGGIOVISIBILEP(PARA)=True
  719.   FINEA(7,0)=True
  720.  End If 
  721. Else If SCOPODELGIOCO=11
  722. 'Uccidi il personaggio PARA  
  723.  If RESISTENZAP(PARA)=0
  724.   FINEA(7,0)=True
  725.  End If 
  726. Else If SCOPODELGIOCO=12
  727. 'Usa 1 oggetto PARA su 1 oggetto PARB
  728. If CATEGORIAO(OGGETTOUSANTE)=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  729.  FINEA(7,0)=True
  730. End If 
  731. Else If SCOPODELGIOCO=13
  732. 'Usa 1 oggetto PARA su 1 oggetto tipo PARB 
  733. If CATEGORIAO(OGGETTOUSANTE)=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  734.  FINEA(7,0)=True
  735. End If 
  736. Else If SCOPODELGIOCO=14
  737. 'Usa 1 oggetto PARA su PARB
  738. If CATEGORIAO(OGGETTOUSANTE)=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  739.  FINEA(7,0)=True
  740. End If 
  741. Else If SCOPODELGIOCO=15
  742. 'Usa 1 oggetto tipo PARA su 1 oggetto PARB 
  743. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  744.  FINEA(7,0)=True
  745. End If 
  746. Else If SCOPODELGIOCO=16
  747. 'Usa 1 oggetto tipo PARA su un oggetto tipo PARB 
  748. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  749.  FINEA(7,0)=True
  750. End If 
  751. Else If SCOPODELGIOCO=17
  752. 'Usa 1 oggetto tipo PARA su PARB 
  753. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  754.  FINEA(7,0)=True
  755. End If 
  756. Else If SCOPODELGIOCO=18
  757. 'Vai nel luogo PARA
  758.  If POSIZIONEP(0)=PARA and TEMP0DIATTRAVERSAMENTOP(0)=0
  759.   FINEA(7,0)=True
  760.  End If 
  761. End If 
  762. End Proc
  763. Procedure CREAMAPPA
  764. Cls 
  765. Print At(0,ULTIMALINEA);"Vuoi creare una mappa dei luoghi o delle stanze (l/s) ?"
  766. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  767. If RISPOSTA$="l"
  768.  Repeat 
  769.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in luoghi (>2)>";LARGHEZZADELLAMAPPA$;
  770.   If LARGHEZZADELLAMAPPA$<>""
  771.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  772.    If LARGHEZZADELLAMAPPA<3
  773.     TIC["La larghezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  774.     Proc _ASPETTA
  775.    End If 
  776.   End If 
  777.  Until LARGHEZZADELLAMAPPA>2
  778.  Repeat 
  779.   Locate 0,ULTIMALINEA : Cline 
  780.   Input "Altezza della mappa in luoghi (>2)>";ALTEZZADELLAMAPPA$;
  781.   If ALTEZZADELLAMAPPA$<>""
  782.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  783.    If ALTEZZADELLAMAPPA<3
  784.     TIC["L'altezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  785.     Proc _ASPETTA
  786.    End If 
  787.   End If 
  788.  Until ALTEZZADELLAMAPPA>2
  789.  Repeat 
  790.   Locate 0,ULTIMALINEA : Cline 
  791.   Input "Luogo di partenza della mappa (>=0)>";LUOGODIPARTENZADELLAMAPPA$;
  792.   If LUOGODIAPRTENZADELLAMAPPA$<>""
  793.    LUOGODIPARTENZADELLAMAPPA=Val(LUOGODIPARTENZADELLAMAPPA$)
  794.    If LUOGODIAPRTENZADELLAMAPPA<0
  795.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  796.     Proc _ASPETTA
  797.    End If 
  798.   End If 
  799.  Until LUOGODIPARTENZADELLAMAPPA>=0
  800.  NUMEROLUOGHI=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  801.  If LUOGODIPARTENZADELLAMAPPA+NUMEROLUOGHI-1>NUMEROL
  802.   TIC["Numero dei luoghi disponibili uguale a"+Str$(NUMEROL+1)+"!",ULTIMALINEA]
  803.   Proc _ASPETTA
  804.  Else 
  805.   Locate 0,ULTIMALINEA : Cline : Print "Vuoi che i luoghi siano delimitati (s/n) ?"
  806.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  807.   If RISPOSTA$="s"
  808.    LIMITI=True
  809.   Else 
  810.    LIMITI=False
  811.   End If 
  812.   TIC["Sto creando la mappa dei luoghi...",ULTIMALINEA]
  813.   Proc _ASPETTA
  814.   Proc _ORDINALUOGHI[NUMEROLUOGHI-1,LARGHEZZADELLAMAPPA,LUOGODIPARTENZADELLLAMAPPA,LIMITI]
  815.  End If 
  816. Else If RISPOSTA$="s"
  817.  If NUMEROE=-1
  818.   Locate 0,ULTIMALINEA : Cline : Print "Non ci sono Edifici!"
  819.   Proc _ASPETTA : Pop Proc
  820.  Else If NUMEROE>0
  821.   Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  822.   If NUMEROEDIFICIO$<>""
  823.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  824.    Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  825.   End If 
  826.  End If 
  827.  Repeat 
  828.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in stanze (>2)>";LARGHEZZADELLAMAPPA$;
  829.   If LARGHEZZADELLAMAPPA$<>""
  830.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  831.    If LARGHEZZADELLAMAPPA<3
  832.     TIC["La larghezza deve essere almeno di tre stanze!",ULTIMALINEA]
  833.     Proc _ASPETTA
  834.    End If 
  835.   End If 
  836.  Until LARGHEZZADELLAMAPPA>2
  837.  Repeat 
  838.   Locate 0,ULTIMALINEA : Cline 
  839.   Input "Altezza della mappa in stanze (>2)>";ALTEZZADELLAMAPPA$;
  840.   If ALTEZZADELLAMAPPA$<>""
  841.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  842.    If ALTEZZADELLAMAPPA<3
  843.     TIC["L'altezza deve essere almeno di tre stanze!",ULTIMALINEA]
  844.     Proc _ASPETTA
  845.    End If 
  846.   End If 
  847.  Until ALTEZZADELLAMAPPA>2
  848.  Repeat 
  849.   Locate 0,ULTIMALINEA : Cline 
  850.   Input "Stanza di partenza della mappa (>=0)>";STANZADIPARTENZADELLAMAPPA$;
  851.   If STANZADIAPRTENZADELLAMAPPA$<>""
  852.    STANZADIPARTENZADELLAMAPPA=Val(STANZADIPARTENZADELLAMAPPA$)
  853.    If STANZADIAPRTENZADELLAMAPPA<0
  854.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  855.     Proc _ASPETTA
  856.    End If 
  857.   End If 
  858.  Until STANZADIPARTENZADELLAMAPPA>=0
  859.  NUMEROSTANZE=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  860.  If STANZADIPARTENZADELLAMAPPA+NUMEROSTANZE-1>NUMEROS(NUMEROEDIFICIO)
  861.   TIC["Numero delle stanze disponibili uguale a"+Str$(NUMEROS(NUMEROEDIFICIO)+1)+"!",ULTIMALINEA]
  862.   Proc _ASPETTA
  863.  Else 
  864.   TIC["Sto creando la mappa delle stanze...",ULTIMALINEA]
  865.   Proc _ASPETTA
  866.   Proc _ORDINASTANZE[NUMEROEDIFICIO,NUMEROSTANZE-1,LARGHEZZADELLAMAPPA,STANZADIPARTENZADELLLAMAPPA]
  867.  End If 
  868. End If 
  869. Curs Off 
  870. End Proc
  871. Procedure DABANCOAVARIABILI
  872. If Length(BANCO)>0
  873.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  874.  INDIRIZZO=Start(BANCO)+21
  875.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  876. 'Nemici attivi o no:   
  877.  Add INDIRIZZO,Len(DATO$)+1
  878.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  879.  ANEMICI=Val(DATO$)
  880.  Add INDIRIZZO,Len(DATO$)+1
  881.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  882. 'Numero delle categorie degli oggetti:   
  883.  Add INDIRIZZO,Len(DATO$)+1
  884.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  885.  NUMEROCO=Val(DATO$)
  886.  Add INDIRIZZO,Len(DATO$)+1
  887.  For A=0 To NUMEROCO
  888.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  889. 'Categoria A>  
  890.   Add INDIRIZZO,Len(DATO$)+1
  891.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  892. 'Nome singolare: 
  893.   Add INDIRIZZO,Len(DATO$)+1
  894.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  895.   NOMESCO$(A)=DATO$
  896.   Add INDIRIZZO,Len(DATO$)+1
  897.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  898. 'Nome plurale: 
  899.   Add INDIRIZZO,Len(DATO$)+1
  900.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  901.   NOMEPCO$(A)=DATO$
  902.    Add INDIRIZZO,Len(DATO$)+1
  903.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  904. 'Nome singolare resto: 
  905.   Add INDIRIZZO,Len(DATO$)+1
  906.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  907.   NOMESRO$(A)=DATO$
  908.   Add INDIRIZZO,Len(DATO$)+1
  909.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  910. 'Nome plurale resto: 
  911.   Add INDIRIZZO,Len(DATO$)+1
  912.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  913.   NOMEPRO$(A)=DATO$
  914.   Add INDIRIZZO,Len(DATO$)+1
  915.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  916. 'Peso: 
  917.   Add INDIRIZZO,Len(DATO$)+1
  918.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  919.   PESOCO(A)=Val(DATO$)
  920.   Add INDIRIZZO,Len(DATO$)+1
  921.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  922. 'Peso resto: 
  923.   Add INDIRIZZO,Len(DATO$)+1
  924.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  925.   PESORESTOCO(A)=Val(DATO$)
  926.   Add INDIRIZZO,Len(DATO$)+1
  927.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  928. 'Tipo:   
  929.   Add INDIRIZZO,Len(DATO$)+1
  930.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  931.   TIPOCO(A)=Val(DATO$)
  932.   Add INDIRIZZO,Len(DATO$)+1
  933.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  934. 'Parametro tipo:   
  935.   Add INDIRIZZO,Len(DATO$)+1
  936.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  937.   PARATIPOCO(A)=Val(DATO$)
  938.   Add INDIRIZZO,Len(DATO$)+1
  939.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  940. 'descrizione:  
  941.   Add INDIRIZZO,Len(DATO$)+1
  942.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  943.   DESCRIZIONECO$(A)=DATO$
  944.   Add INDIRIZZO,Len(DATO$)+1
  945.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  946. 'Oggetto del personaggio zero: 
  947.   Add INDIRIZZO,Len(DATO$)+1
  948.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  949.   OGGETTIDELPERSONAGGIO0(A)=Val(DATO$)
  950.   Add INDIRIZZO,Len(DATO$)+1
  951.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  952. 'Resto del personaggio zero: 
  953.   Add INDIRIZZO,Len(DATO$)+1
  954.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  955.   RESTIDELPERSONAGGIO0(A)=Val(DATO$)
  956.   Add INDIRIZZO,Len(DATO$)+1
  957.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  958. 'Oggetto dato: 
  959.   Add INDIRIZZO,Len(DATO$)+1
  960.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  961.   OGGETTIDATIOLASCIATI(A)=Val(DATO$)
  962.   Add INDIRIZZO,Len(DATO$)+1
  963.  Next A
  964.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  965. 'Numero degli edifici:   
  966.  Add INDIRIZZO,Len(DATO$)+1
  967.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  968.  NUMEROE=Val(DATO$)
  969.  Add INDIRIZZO,Len(DATO$)+1
  970.  If NUMEROE>-1
  971.   For A=0 To NUMEROE
  972.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  973. 'Edificio A>   
  974.    Add INDIRIZZO,Len(DATO$)+1
  975.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  976. 'Nome: 
  977.    Add INDIRIZZO,Len(DATO$)+1
  978.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  979.    NOMEE$(A)=DATO$
  980.    Add INDIRIZZO,Len(DATO$)+1
  981.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  982. 'Descrizione:  
  983.    Add INDIRIZZO,Len(DATO$)+1
  984.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  985.    DESCRIZIONEE$(A)=DATO$
  986.    Add INDIRIZZO,Len(DATO$)+1
  987.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  988. 'Numero delle stanze:  
  989.    Add INDIRIZZO,Len(DATO$)+1
  990.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  991.    NUMEROS(A)=Val(DATO$)
  992.    Add INDIRIZZO,Len(DATO$)+1
  993.    For B=0 To NUMEROS(A)
  994.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  995. 'Stanza A>   
  996.     Add INDIRIZZO,Len(DATO$)+1
  997.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  998. 'Nome: 
  999.     Add INDIRIZZO,Len(DATO$)+1
  1000.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1001.     NOMES$(B,A)=DATO$
  1002.     Add INDIRIZZO,Len(DATO$)+1
  1003.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1004. 'Luogo Nord: 
  1005.     Add INDIRIZZO,Len(DATO$)+1
  1006.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1007.     DREZIONES(0,B,A)=Val(DATO$)
  1008.     Add INDIRIZZO,Len(DATO$)+1
  1009.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1010. 'Luogo NordEst:  
  1011.     Add INDIRIZZO,Len(DATO$)+1
  1012.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1013.     DREZIONES(1,B,A)=Val(DATO$)
  1014.     Add INDIRIZZO,Len(DATO$)+1
  1015.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1016. 'Luogo Est:  
  1017.     Add INDIRIZZO,Len(DATO$)+1
  1018.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1019.     DREZIONES(2,B,A)=Val(DATO$)
  1020.     Add INDIRIZZO,Len(DATO$)+1
  1021.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1022. 'Luogo SudEst: 
  1023.     Add INDIRIZZO,Len(DATO$)+1
  1024.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1025.     DREZIONES(3,B,A)=Val(DATO$)
  1026.     Add INDIRIZZO,Len(DATO$)+1
  1027.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1028. 'Luogo Sud:  
  1029.     Add INDIRIZZO,Len(DATO$)+1
  1030.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1031.     DREZIONES(4,B,A)=Val(DATO$)
  1032.     Add INDIRIZZO,Len(DATO$)+1
  1033.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1034. 'Luogo SudOvest: 
  1035.     Add INDIRIZZO,Len(DATO$)+1
  1036.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1037.     DREZIONES(5,B,A)=Val(DATO$)
  1038.     Add INDIRIZZO,Len(DATO$)+1
  1039.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1040. 'Luogo Ovest:  
  1041.     Add INDIRIZZO,Len(DATO$)+1
  1042.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1043.     DREZIONES(6,B,A)=Val(DATO$)
  1044.     Add INDIRIZZO,Len(DATO$)+1
  1045.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1046. 'Luogo NordOvest:  
  1047.     Add INDIRIZZO,Len(DATO$)+1
  1048.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1049.     DREZIONES(7,B,A)=Val(DATO$)
  1050.     Add INDIRIZZO,Len(DATO$)+1
  1051.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1052. 'Luogo Sopra:  
  1053.     Add INDIRIZZO,Len(DATO$)+1
  1054.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1055.     DREZIONES(8,B,A)=Val(DATO$)
  1056.     Add INDIRIZZO,Len(DATO$)+1
  1057.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1058. 'Luogo Sotto:  
  1059.     Add INDIRIZZO,Len(DATO$)+1
  1060.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1061.     DREZIONES(9,B,A)=Val(DATO$)
  1062.     Add INDIRIZZO,Len(DATO$)+1
  1063.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1064. 'Soldi nella stanza:   
  1065.     Add INDIRIZZO,Len(DATO$)+1
  1066.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1067.     SOLDIS(B,A)=Val(DATO$)
  1068.     Add INDIRIZZO,Len(DATO$)+1
  1069.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1070. 'Descrizione:  
  1071.     Add INDIRIZZO,Len(DATO$)+1
  1072.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1073.     DESCRIZIONES$(B,A)=DATO$
  1074.     Add INDIRIZZO,Len(DATO$)+1
  1075.    Next B
  1076.   Next A
  1077.  End If 
  1078.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1079. 'Numero dei luoghi:  
  1080.  Add INDIRIZZO,Len(DATO$)+1
  1081.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1082.  NUMEROL=Val(DATO$)
  1083.  Add INDIRIZZO,Len(DATO$)+1
  1084.  For A=0 To NUMEROL
  1085.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1086. 'Luogo A>  
  1087.   Add INDIRIZZO,Len(DATO$)+1
  1088.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1089. 'Nome: 
  1090.   Add INDIRIZZO,Len(DATO$)+1
  1091.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1092.   NOMEL$(A)=DATO$
  1093.   Add INDIRIZZO,Len(DATO$)+1
  1094.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1095. 'Luogo Nord: 
  1096.   Add INDIRIZZO,Len(DATO$)+1
  1097.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1098.   DREZIONEL(0,A)=Val(DATO$)
  1099.   Add INDIRIZZO,Len(DATO$)+1
  1100.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1101. 'Luogo NordEst:  
  1102.   Add INDIRIZZO,Len(DATO$)+1
  1103.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1104.   DREZIONEL(1,A)=Val(DATO$)
  1105.   Add INDIRIZZO,Len(DATO$)+1
  1106.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1107. 'Luogo Est:  
  1108.   Add INDIRIZZO,Len(DATO$)+1
  1109.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1110.   DREZIONEL(2,A)=Val(DATO$)
  1111.   Add INDIRIZZO,Len(DATO$)+1
  1112.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1113. 'Luogo SudEst: 
  1114.   Add INDIRIZZO,Len(DATO$)+1
  1115.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1116.   DREZIONEL(3,A)=Val(DATO$)
  1117.   Add INDIRIZZO,Len(DATO$)+1
  1118.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1119. 'Luogo Sud:  
  1120.   Add INDIRIZZO,Len(DATO$)+1
  1121.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1122.   DREZIONEL(4,A)=Val(DATO$)
  1123.   Add INDIRIZZO,Len(DATO$)+1
  1124.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1125. 'Luogo SudOvest: 
  1126.   Add INDIRIZZO,Len(DATO$)+1
  1127.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1128.   DREZIONEL(5,A)=Val(DATO$)
  1129.   Add INDIRIZZO,Len(DATO$)+1
  1130.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1131. 'Luogo Ovest:  
  1132.   Add INDIRIZZO,Len(DATO$)+1
  1133.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1134.   DREZIONEL(6,A)=Val(DATO$)
  1135.   Add INDIRIZZO,Len(DATO$)+1
  1136.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1137. 'Luogo NordOvest:  
  1138.   Add INDIRIZZO,Len(DATO$)+1
  1139.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1140.   DREZIONEL(7,A)=Val(DATO$)
  1141.   Add INDIRIZZO,Len(DATO$)+1
  1142.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1143. 'Luogo Sopra:  
  1144.   Add INDIRIZZO,Len(DATO$)+1
  1145.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1146.   DREZIONEL(8,A)=Val(DATO$)
  1147.   Add INDIRIZZO,Len(DATO$)+1
  1148.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1149. 'Luogo Sotto:  
  1150.   Add INDIRIZZO,Len(DATO$)+1
  1151.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1152.   DREZIONEL(9,A)=Val(DATO$)
  1153.   Add INDIRIZZO,Len(DATO$)+1
  1154.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1155. 'Soldi nel luogo:  
  1156.   Add INDIRIZZO,Len(DATO$)+1
  1157.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1158.   SOLDIL(A)=Val(DATO$)
  1159.   Add INDIRIZZO,Len(DATO$)+1
  1160.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1161. 'Regione del luogo:  
  1162.   Add INDIRIZZO,Len(DATO$)+1
  1163.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1164.   REGIONEL(A)=Val(DATO$)
  1165.   Add INDIRIZZO,Len(DATO$)+1
  1166.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1167. 'Tipo di luogo:  
  1168.   Add INDIRIZZO,Len(DATO$)+1
  1169.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1170.   TIPOL(A)=Val(DATO$)
  1171.   Add INDIRIZZO,Len(DATO$)+1
  1172.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1173. 'Descrizione:  
  1174.   Add INDIRIZZO,Len(DATO$)+1
  1175.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1176.   DESCRIZIONEL$(A)=DATO$
  1177.   Add INDIRIZZO,Len(DATO$)+1
  1178.  Next A
  1179.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1180. 'Numero degli oggetti:   
  1181.  Add INDIRIZZO,Len(DATO$)+1
  1182.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1183.  NUMEROO=Val(DATO$)
  1184.  Add INDIRIZZO,Len(DATO$)+1
  1185.  For A=0 To NUMEROO
  1186.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1187. 'Oggetto A>  
  1188.   Add INDIRIZZO,Len(DATO$)+1
  1189.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1190. 'Categoria:  
  1191.   Add INDIRIZZO,Len(DATO$)+1
  1192.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1193.   CATEGORIAO(A)=Val(DATO$)
  1194.   Add INDIRIZZO,Len(DATO$)+1
  1195.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1196. 'Posizione:  
  1197.   Add INDIRIZZO,Len(DATO$)+1
  1198.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1199.   POSIZIONEO(A)=Val(DATO$)
  1200.   Add INDIRIZZO,Len(DATO$)+1
  1201.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1202. 'Tipo:   
  1203.   Add INDIRIZZO,Len(DATO$)+1
  1204.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1205.   TIPOO(A)=Val(DATO$)
  1206.   Add INDIRIZZO,Len(DATO$)+1
  1207.  Next A
  1208.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1209. 'Numero dei personaggi:  
  1210.  Add INDIRIZZO,Len(DATO$)+1
  1211.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1212.  NUMEROP=Val(DATO$)
  1213.  Add INDIRIZZO,Len(DATO$)+1
  1214.  For A=0 To NUMEROP
  1215.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1216. 'Personaggio A>  
  1217.   Add INDIRIZZO,Len(DATO$)+1
  1218.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1219. 'Nome:   
  1220.   Add INDIRIZZO,Len(DATO$)+1
  1221.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1222.   NOMEP$(A)=DATO$
  1223.   Add INDIRIZZO,Len(DATO$)+1
  1224.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1225. 'Posizione:    
  1226.   Add INDIRIZZO,Len(DATO$)+1
  1227.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1228.   POSIZIONEP(A)=Val(DATO$)
  1229.   Add INDIRIZZO,Len(DATO$)+1
  1230.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1231. 'Costituzione:   
  1232.   Add INDIRIZZO,Len(DATO$)+1
  1233.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1234.   C0STITUZIONEP(A)=Val(DATO$)
  1235.   Add INDIRIZZO,Len(DATO$)+1
  1236.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1237. 'Destrezza:    
  1238.   Add INDIRIZZO,Len(DATO$)+1
  1239.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1240.   DESTREZZAP(A)=Val(DATO$)
  1241.   Add INDIRIZZO,Len(DATO$)+1
  1242.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1243. 'Forza:    
  1244.   Add INDIRIZZO,Len(DATO$)+1
  1245.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1246.   F0RZAP(A)=Val(DATO$)
  1247.   Add INDIRIZZO,Len(DATO$)+1
  1248.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1249. 'Peso:   
  1250.   Add INDIRIZZO,Len(DATO$)+1
  1251.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1252.   PESOP(A)=Val(DATO$)
  1253.   Add INDIRIZZO,Len(DATO$)+1
  1254.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1255. 'Peso netto:   
  1256.   Add INDIRIZZO,Len(DATO$)+1
  1257.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1258.   PESONETTOP(A)=Val(DATO$)
  1259.   Add INDIRIZZO,Len(DATO$)+1
  1260.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1261. 'Resistenza:   
  1262.   Add INDIRIZZO,Len(DATO$)+1
  1263.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1264.   RESISTENZAP(A)=Val(DATO$)
  1265.   Add INDIRIZZO,Len(DATO$)+1
  1266.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1267. 'Soldi:    
  1268.   Add INDIRIZZO,Len(DATO$)+1
  1269.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1270.   SOLDIP(A)=Val(DATO$)
  1271.   Add INDIRIZZO,Len(DATO$)+1
  1272.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1273. 'Tipo:   
  1274.   Add INDIRIZZO,Len(DATO$)+1
  1275.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1276.   TIPOP(A)=Val(DATO$)
  1277.   Add INDIRIZZO,Len(DATO$)+1
  1278.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1279. 'Descrizione:    
  1280.   Add INDIRIZZO,Len(DATO$)+1
  1281.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1282.   DESCRIZIONEP$(A)=DATO$
  1283.   Add INDIRIZZO,Len(DATO$)+1
  1284.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1285. 'Inizio sonno:   
  1286.   Add INDIRIZZO,Len(DATO$)+1
  1287.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1288.   INIZIOSONNOP(A)=Val(DATO$)
  1289.   Add INDIRIZZO,Len(DATO$)+1
  1290.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1291. 'Durata sonno:   
  1292.   Add INDIRIZZO,Len(DATO$)+1
  1293.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1294.   SONNOP(A)=Val(DATO$)
  1295.   Add INDIRIZZO,Len(DATO$)+1
  1296.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1297. 'Direzione presa:    
  1298.   Add INDIRIZZO,Len(DATO$)+1
  1299.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1300.   DREZIONEPRESAP(A)=Val(DATO$)
  1301.   Add INDIRIZZO,Len(DATO$)+1
  1302.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1303. 'Luogo di destinazione:    
  1304.   Add INDIRIZZO,Len(DATO$)+1
  1305.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1306.   LUOGODIDESTINAZIONEP(A)=Val(DATO$)
  1307.   Add INDIRIZZO,Len(DATO$)+1
  1308.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1309. 'Tempo di attraversamento:   
  1310.   Add INDIRIZZO,Len(DATO$)+1
  1311.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1312.   TEMP0DIATTRAVERSAMENTOP(A)=Val(DATO$)
  1313.   Add INDIRIZZO,Len(DATO$)+1
  1314.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1315. 'Soldi ricevuti:     
  1316.   Add INDIRIZZO,Len(DATO$)+1
  1317.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1318.   SOLDIRICEVUTIP(A)=Val(DATO$)
  1319.   Add INDIRIZZO,Len(DATO$)+1
  1320.   For B=0 To 7
  1321.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1322. 'Azione:   
  1323.    Add INDIRIZZO,Len(DATO$)+1
  1324.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1325.    AZIONEP(B,A)=Val(DATO$)
  1326.    Add INDIRIZZO,Len(DATO$)+1
  1327.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1328. 'Parametro A azione:   
  1329.    Add INDIRIZZO,Len(DATO$)+1
  1330.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1331.    PARAAAZIONEP(B,A)=Val(DATO$)
  1332.    Add INDIRIZZO,Len(DATO$)+1
  1333.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1334. 'Parametro B azione:   
  1335.    Add INDIRIZZO,Len(DATO$)+1
  1336.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1337.    PARABAZIONEP(B,A)=Val(DATO$)
  1338.    Add INDIRIZZO,Len(DATO$)+1
  1339.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1340. 'Parametro C azione:   
  1341.    Add INDIRIZZO,Len(DATO$)+1
  1342.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1343.    PARACAZIONEP(B,A)=Val(DATO$)
  1344.    Add INDIRIZZO,Len(DATO$)+1
  1345.   Next B
  1346.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1347. 'Posizione azione:   
  1348.   Add INDIRIZZO,Len(DATO$)+1
  1349.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1350.   POSIZIONEA(A)=Val(DATO$)
  1351.   Add INDIRIZZO,Len(DATO$)+1
  1352.  Next A
  1353.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1354. 'Numero delle regioni:   
  1355.  Add INDIRIZZO,Len(DATO$)+1
  1356.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1357.  NUMEROR=Val(DATO$)
  1358.  Add INDIRIZZO,Len(DATO$)+1
  1359.  For A=0 To NUMEROR
  1360.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1361. 'Regione A>  
  1362.   Add INDIRIZZO,Len(DATO$)+1
  1363.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1364. 'Nome:   
  1365.   Add INDIRIZZO,Len(DATO$)+1
  1366.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1367.   NOMER$(A)=DATO$
  1368.   Add INDIRIZZO,Len(DATO$)+1
  1369.  Next A
  1370.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1371. 'Giornata:     
  1372.  Add INDIRIZZO,Len(DATO$)+1
  1373.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1374.  CONDIZIONEG=Val(DATO$)
  1375.  Add INDIRIZZO,Len(DATO$)+1
  1376.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1377. 'Tempo trascorso:    
  1378.  Add INDIRIZZO,Len(DATO$)+1
  1379.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1380.  TEMP0TRASCORSO=Val(DATO$)
  1381.  Add INDIRIZZO,Len(DATO$)+1
  1382.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  1383.   Proc TIC["Conversione dati avvenuta",ULTIMALINEA] : Proc _ASPETTA
  1384.  Else 
  1385.   Proc TIC["Conversione dati fallita",ULTIMALINEA] : Proc _ASPETTA
  1386.   Proc INIZIALIZZALEVARIABILI
  1387.  End If 
  1388.  Erase BANCO
  1389. End If 
  1390. End Proc
  1391. Procedure DAI
  1392. For A=1 To NUMEROP
  1393.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIRICEVENTI
  1394. Next A
  1395. If PERSONAGGIRICEVENTI>0
  1396.  For A=0 To NUMEROCO
  1397.   If OGGETTIDELPERSONAGGIO0(A)>0
  1398.    Inc CATEGORIEOGGETTI
  1399.   End If 
  1400.   If RESTIDELPERSONAGGIO0(A)>0
  1401.    Inc CATEGORIEOGGETTI
  1402.   End If 
  1403.  Next A
  1404.  For A=1 To NUMEROP
  1405.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  1406.    Inc PERSONAGGIDADARE
  1407.   End If 
  1408.  Next A
  1409.  If SOLDIP(0)>0
  1410.   SOLDIDADARE=True
  1411.  End If 
  1412.  If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1413.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto, un personaggio o dei soldi (o/p/s) ?>";
  1414.   OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  1415.   OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  1416.   If OGGETTOPERSONAGGIOOSOLDI$="o"
  1417.    Proc DAIUNOGGETTO
  1418.   Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  1419.    Proc DAIUNPERSONAGGIO
  1420.   Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  1421.    Proc DAIDEISOLDI
  1422.   End If 
  1423.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1424.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
  1425.   OGGETTOOSOLDI$=Input$(1)
  1426.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  1427.   If OGGETTOOSOLDI$="o"
  1428.    Proc DAIUNOGGETTO
  1429.   Else If OGGETTOOSOLDI$="s"
  1430.    Proc DAIDEISOLDI
  1431.   End If 
  1432.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1433.   Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
  1434.   PERSONAGGIOOSOLDI$=Input$(1)
  1435.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  1436.   If PERSONAGGIOOSOLDI$="p"
  1437.    Proc DAIUNPERSONAGGIO
  1438.   Else If PERSONAGGIOOSOLDI$="s"
  1439.    Proc DAIDEISOLDI
  1440.   End If 
  1441.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1442.   Proc DAIDEISOLDI
  1443.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1444.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
  1445.   OGGETTOOPERSONAGGIO$=Input$(1)
  1446.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  1447.   If OGGETTOOPERSONAGGIO$="o"
  1448.    Proc DAIUNOGGETTO
  1449.   Else If OGGETTOOPERSONAGGIO$="p"
  1450.    Proc DAIUNPERSONAGGIO
  1451.   End If 
  1452.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
  1453.   Proc DAIUNOGGETTO
  1454.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1455.   Proc DAIUNPERSONAGGIO
  1456.  Else 
  1457.   Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
  1458.   If _MUSICA=False
  1459.    Bell 1
  1460.   End If 
  1461.   Proc _ASPETTA
  1462.  End If 
  1463. Else 
  1464.  Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
  1465.  If _MUSICA=False
  1466.   Bell 1
  1467.  End If 
  1468.  Proc _ASPETTA
  1469. End If 
  1470. End Proc
  1471. Procedure DAIAPAO[AZIONE,P]
  1472. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1473. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1474.  PERSONAGGIOTROVATO=A
  1475. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1476.  PERSONAGGIOTROVATO=A
  1477. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1478.  PERSONAGGIOTROVATO=A
  1479. End If 
  1480. If PERSONAGGIOTROVATO>-1
  1481.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1482.  For A=0 To NUMEROO
  1483.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1484.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1485.    B=A
  1486.   End If 
  1487.  Next A
  1488.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1489.   Pop Proc
  1490.  End If 
  1491.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1492.   A=B
  1493.  Else 
  1494.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1495.   B=0
  1496.   For A=0 To NUMEROO
  1497.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1498.     OGGETTODELPERSONAGGIOP(B)=A
  1499.     Inc B
  1500.    End If 
  1501.   Next A
  1502.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1503.  End If 
  1504.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1505.  If Btst(1,TIPOO(A))=True
  1506.   If PERSONAGGIOTROVATO=0
  1507.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1508.   End If 
  1509.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1510.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1511.  Else 
  1512.   If PERSONAGGIOTROVATO=0
  1513.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1514.   End If 
  1515.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1516.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1517.  End If 
  1518.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1519.   For B=0 To NUMEROO
  1520.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1521.     If Btst(1,TIPOO(B))=True
  1522.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1523.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1524.     Else 
  1525.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1526.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1527.     End If 
  1528.    End If 
  1529.   Next B
  1530.   For B=1 To NUMEROP
  1531.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1532.     Add PESONETTOP(P),-PESOP(B)*1000
  1533.     Add PESONETTOP(P),-PESONETTOP(B)
  1534.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1535.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1536.    End If 
  1537.   Next B
  1538.  End If 
  1539.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1540.   If PERSONAGGIOTROVATO=0
  1541.    Print NOMEP$(P);" ti d� 1 ";
  1542.   Else 
  1543.    Print NOMEP$(P);" d� 1 ";
  1544.   End If 
  1545.   If Btst(1,TIPOO(A))=True
  1546.    Print NOMESRO$(CATEGORIAO(A));
  1547.   Else 
  1548.    Print NOMESCO$(CATEGORIAO(A));
  1549.   End If 
  1550.   If PERSONAGGIOTROVATO=0
  1551.    Print 
  1552.   Else 
  1553.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1554.   End If 
  1555.  End If 
  1556.  Dec PARAAAZIONEP(AZIONE,P)
  1557.  If PARAAAZIONEP(AZIONE,P)=0
  1558.   FINEA(AZIONE,P)=True
  1559.  End If 
  1560. End If 
  1561. End Proc
  1562. Procedure DAIAPAOB[AZIONE,P]
  1563. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1564. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1565.  PERSONAGGIOTROVATO=A
  1566. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1567.  PERSONAGGIOTROVATO=A
  1568. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1569.  PERSONAGGIOTROVATO=A
  1570. End If 
  1571. If PERSONAGGIOTROVATO>-1
  1572.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1573.  For A=0 To NUMEROO
  1574.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1575.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1576.    B=A
  1577.   End If 
  1578.  Next A
  1579.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1580.   Pop Proc
  1581.  End If 
  1582.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1583.   A=B
  1584.  Else 
  1585.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1586.   B=0
  1587.   For A=0 To NUMEROO
  1588.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1589.     OGGETTODELPERSONAGGIOP(B)=A
  1590.     Inc B
  1591.    End If 
  1592.   Next A
  1593.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1594.  End If 
  1595.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1596.  If Btst(1,TIPOO(A))=True
  1597.   If PERSONAGGIOTROVATO=0
  1598.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1599.   End If 
  1600.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1601.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1602.  Else 
  1603.   If PERSONAGGIOTROVATO=0
  1604.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1605.   End If 
  1606.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1607.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1608.  End If 
  1609.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1610.   For B=0 To NUMEROO
  1611.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1612.     If Btst(1,TIPOO(B))=True
  1613.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1614.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1615.     Else 
  1616.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1617.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1618.     End If 
  1619.    End If 
  1620.   Next B
  1621.   For B=1 To NUMEROP
  1622.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1623.     Add PESONETTOP(P),-PESOP(B)*1000
  1624.     Add PESONETTOP(P),-PESONETTOP(B)
  1625.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1626.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1627.    End If 
  1628.   Next B
  1629.  End If 
  1630.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1631.   If PERSONAGGIOTROVATO=0
  1632.    Print NOMEP$(P);" ti d� 1 ";
  1633.   Else 
  1634.    Print NOMEP$(P);" d� 1 ";
  1635.   End If 
  1636.   If Btst(1,TIPOO(A))=True
  1637.    Print NOMESRO$(CATEGORIAO(A));
  1638.   Else 
  1639.    Print NOMESCO$(CATEGORIAO(A));
  1640.   End If 
  1641.   If PERSONAGGIOTROVATO=0
  1642.    Print 
  1643.   Else 
  1644.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1645.   End If 
  1646.  End If 
  1647.  Dec PARAAAZIONEP(AZIONE,P)
  1648.  If PARAAAZIONEP(AZIONE,P)=0
  1649.   FINEA(AZIONE,P)=True
  1650.  End If 
  1651. End If 
  1652. End Proc
  1653. Procedure DAIAPAOTB[AZIONE,P]
  1654. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1655. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1656.  PERSONAGGIOTROVATO=A
  1657. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1658.  PERSONAGGIOTROVATO=A
  1659. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1660.  PERSONAGGIOTROVATO=A
  1661. End If 
  1662. If PERSONAGGIOTROVATO>-1
  1663.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1664.  For A=0 To NUMEROO
  1665.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1666.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1667.    B=A
  1668.   End If 
  1669.  Next A
  1670.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1671.   Pop Proc
  1672.  End If 
  1673.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1674.   A=B
  1675.  Else 
  1676.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1677.   B=0
  1678.   For A=0 To NUMEROO
  1679.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1680.     OGGETTODELPERSONAGGIOP(B)=A
  1681.     Inc B
  1682.    End If 
  1683.   Next A
  1684.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1685.  End If 
  1686.  For A=0 To NUMEROO
  1687.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1688.    POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1689.    If Btst(1,TIPOO(A))=True
  1690.     If PERSONAGGIOTROVATO=0
  1691.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1692.     End If 
  1693.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1694.     Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1695.    Else 
  1696.     If PERSONAGGIOTROVATO=0
  1697.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1698.     End If 
  1699.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1700.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1701.    End If 
  1702.    If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1703.     For B=0 To NUMEROO
  1704.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1705.       If Btst(1,TIPOO(B))=True
  1706.        Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1707.        Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1708.       Else 
  1709.        Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1710.        Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1711.       End If 
  1712.      End If 
  1713.     Next B
  1714.     For B=1 To NUMEROP
  1715.      If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1716.       Add PESONETTOP(P),-PESOP(B)*1000
  1717.       Add PESONETTOP(P),-PESONETTOP(B)
  1718.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1719.       Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1720.      End If 
  1721.     Next B
  1722.    End If 
  1723.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1724.     If PERSONAGGIOTROVATO=0
  1725.      Print NOMEP$(P);" ti d� 1 ";
  1726.     Else 
  1727.      Print NOMEP$(P);" d� 1 ";
  1728.     End If 
  1729.     If Btst(1,TIPOO(A))=True
  1730.      Print NOMESRO$(CATEGORIAO(A));
  1731.     Else 
  1732.      Print NOMESCO$(CATEGORIAO(A));
  1733.     End If 
  1734.     If PERSONAGGIOTROVATO=0
  1735.      Print 
  1736.     Else 
  1737.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1738.     End If 
  1739.    End If 
  1740.    Dec PARAAAZIONEP(AZIONE,P)
  1741.    If PARAAAZIONEP(AZIONE,P)=0
  1742.     FINEA(AZIONE,P)=True
  1743.    End If 
  1744.    Exit 
  1745.   End If 
  1746.  Next A
  1747. End If 
  1748. End Proc
  1749. Procedure DAIAPAP[AZIONE,P]
  1750. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1751. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1752.  PERSONAGGIOTROVATO=A
  1753. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1754.  PERSONAGGIOTROVATO=A
  1755. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1756.  PERSONAGGIOTROVATO=A
  1757. End If 
  1758. If PERSONAGGIOTROVATO>-1
  1759.  For A=0 To NUMEROP
  1760.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1761.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1762.    Add PESONETTOP(P),-PESOP(A)*1000
  1763.    Add PESONETTOP(P),-PESONETTOP(A)
  1764.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1765.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1766.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1767.     If PERSONAGGIOTROVATO=0
  1768.      Print NOMEP$(P);" ti d� ";
  1769.     Else 
  1770.      Print NOMEP$(P);" d� ";
  1771.     End If 
  1772.     Print NOMEP$(A);
  1773.     If PERSONAGGIOTROVATO=0
  1774.      Print 
  1775.     Else 
  1776.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1777.     End If 
  1778.    End If 
  1779.    Dec PARAAAZIONEP(AZIONE,P)
  1780.    If PARAAAZIONEP(AZIONE,P)=0
  1781.     FINEA(AZIONE,P)=True
  1782.    End If 
  1783.    Exit 
  1784.   End If 
  1785.  Next A
  1786. End If 
  1787. End Proc
  1788. Procedure DAIAPPA[AZIONE,P]
  1789. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1790. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1791.  PERSONAGGIOTROVATO=A
  1792. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1793.  PERSONAGGIOTROVATO=A
  1794. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1795.  PERSONAGGIOTROVATO=A
  1796. End If 
  1797. If PERSONAGGIOTROVATO>-1
  1798.  A=PARAAAZIONEP(AZIONE,P)
  1799.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1800.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1801.   Add PESONETTOP(P),-PESOP(A)*1000
  1802.   Add PESONETTOP(P),-PESONETTOP(A)
  1803.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1804.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1805.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1806.    If PERSONAGGIOTROVATO=0
  1807.     Print NOMEP$(P);" ti d� ";
  1808.    Else 
  1809.     Print NOMEP$(P);" d� ";
  1810.    End If 
  1811.    Print NOMEP$(A);
  1812.    If PERSONAGGIOTROVATO=0
  1813.     Print 
  1814.    Else 
  1815.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1816.    End If 
  1817.   End If 
  1818.   FINEA(AZIONE,P)=True
  1819.  End If 
  1820. End If 
  1821. End Proc
  1822. Procedure DAIAPABO[AZIONE,P]
  1823. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1824. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1825.  PERSONAGGIOTROVATO=A
  1826. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1827.  PERSONAGGIOTROVATO=A
  1828. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1829.  PERSONAGGIOTROVATO=A
  1830. End If 
  1831. If PERSONAGGIOTROVATO>-1
  1832.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1833.  For A=0 To NUMEROO
  1834.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1835.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1836.    B=A
  1837.   End If 
  1838.  Next A
  1839.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1840.   Pop Proc
  1841.  End If 
  1842.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1843.   A=B
  1844.  Else 
  1845.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1846.   B=0
  1847.   For A=0 To NUMEROO
  1848.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1849.     OGGETTODELPERSONAGGIOP(B)=A
  1850.     Inc B
  1851.    End If 
  1852.   Next A
  1853.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1854.  End If 
  1855.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1856.  If Btst(1,TIPOO(A))=True
  1857.   If PERSONAGGIOTROVATO=0
  1858.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1859.   End If 
  1860.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1861.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1862.  Else 
  1863.   If PERSONAGGIOTROVATO=0
  1864.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1865.   End If 
  1866.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1867.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1868.  End If 
  1869.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1870.   For B=0 To NUMEROO
  1871.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1872.     If Btst(1,TIPOO(B))=True
  1873.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1874.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1875.     Else 
  1876.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1877.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1878.     End If 
  1879.    End If 
  1880.   Next B
  1881.   For B=1 To NUMEROP
  1882.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1883.     Add PESONETTOP(P),-PESOP(B)*1000
  1884.     Add PESONETTOP(P),-PESONETTOP(B)
  1885.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1886.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1887.    End If 
  1888.   Next B
  1889.  End If 
  1890.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1891.   If PERSONAGGIOTROVATO=0
  1892.    Print NOMEP$(P);" ti d� 1 ";
  1893.   Else 
  1894.    Print NOMEP$(P);" d� 1 ";
  1895.   End If 
  1896.   If Btst(1,TIPOO(A))=True
  1897.    Print NOMESRO$(CATEGORIAO(A));
  1898.   Else 
  1899.    Print NOMESCO$(CATEGORIAO(A));
  1900.   End If 
  1901.   If PERSONAGGIOTROVATO=0
  1902.    Print 
  1903.   Else 
  1904.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1905.   End If 
  1906.  End If 
  1907.  Dec PARABAZIONEP(AZIONE,P)
  1908.  If PARABAZIONEP(AZIONE,P)=0
  1909.   FINEA(AZIONE,P)=True
  1910.  End If 
  1911. End If 
  1912. End Proc
  1913. Procedure DAIAPABOC[AZIONE,P]
  1914. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1915. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1916.  PERSONAGGIOTROVATO=A
  1917. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1918.  PERSONAGGIOTROVATO=A
  1919. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1920.  PERSONAGGIOTROVATO=A
  1921. End If 
  1922. If PERSONAGGIOTROVATO>-1
  1923.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1924.  For A=0 To NUMEROO
  1925.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1926.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1927.    B=A
  1928.   End If 
  1929.  Next A
  1930.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1931.   Pop Proc
  1932.  End If 
  1933.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1934.   A=B
  1935.  Else 
  1936.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1937.   B=0
  1938.   For A=0 To NUMEROO
  1939.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1940.     OGGETTODELPERSONAGGIOP(B)=A
  1941.     Inc B
  1942.    End If 
  1943.   Next A
  1944.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1945.  End If 
  1946.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1947.  If Btst(1,TIPOO(A))=True
  1948.   If PERSONAGGIOTROVATO=0
  1949.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1950.   End If 
  1951.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1952.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1953.  Else 
  1954.   If PERSONAGGIOTROVATO=0
  1955.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1956.   End If 
  1957.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1958.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1959.  End If 
  1960.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1961.   For B=0 To NUMEROO
  1962.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1963.     If Btst(1,TIPOO(B))=True
  1964.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1965.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1966.     Else 
  1967.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1968.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1969.     End If 
  1970.    End If 
  1971.   Next B
  1972.   For B=1 To NUMEROP
  1973.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1974.     Add PESONETTOP(P),-PESOP(B)*1000
  1975.     Add PESONETTOP(P),-PESONETTOP(B)
  1976.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1977.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1978.    End If 
  1979.   Next B
  1980.  End If 
  1981.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1982.   If PERSONAGGIOTROVATO=0
  1983.    Print NOMEP$(P);" ti d� 1 ";
  1984.   Else 
  1985.    Print NOMEP$(P);" d� 1 ";
  1986.   End If 
  1987.   If Btst(1,TIPOO(A))=True
  1988.    Print NOMESRO$(CATEGORIAO(A));
  1989.   Else 
  1990.    Print NOMESCO$(CATEGORIAO(A));
  1991.   End If 
  1992.   If PERSONAGGIOTROVATO=0
  1993.    Print 
  1994.   Else 
  1995.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1996.   End If 
  1997.  End If 
  1998.  Dec PARABAZIONEP(AZIONE,P)
  1999.  If PARABAZIONEP(AZIONE,P)=0
  2000.   FINEA(AZIONE,P)=True
  2001.  End If 
  2002. End If 
  2003. End Proc
  2004. Procedure DAIAPABOTC[AZIONE,P]
  2005. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2006. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2007.  PERSONAGGIOTROVATO=A
  2008. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2009.  PERSONAGGIOTROVATO=A
  2010. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2011.  PERSONAGGIOTROVATO=A
  2012. End If 
  2013. If PERSONAGGIOTROVATO>-1
  2014.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  2015.  For A=0 To NUMEROO
  2016.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2017.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  2018.    B=A
  2019.   End If 
  2020.  Next A
  2021.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  2022.   Pop Proc
  2023.  End If 
  2024.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  2025.   A=B
  2026.  Else 
  2027.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  2028.   B=0
  2029.   For A=0 To NUMEROO
  2030.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2031.     OGGETTODELPERSONAGGIOP(B)=A
  2032.     Inc B
  2033.    End If 
  2034.   Next A
  2035.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  2036.  End If 
  2037.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  2038.  If Btst(1,TIPOO(A))=True
  2039.   If PERSONAGGIOTROVATO=0
  2040.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  2041.   End If 
  2042.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  2043.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  2044.  Else 
  2045.   If PERSONAGGIOTROVATO=0
  2046.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  2047.   End If 
  2048.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  2049.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  2050.  End If 
  2051.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  2052.   For B=0 To NUMEROO
  2053.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  2054.     If Btst(1,TIPOO(B))=True
  2055.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  2056.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  2057.     Else 
  2058.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  2059.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  2060.     End If 
  2061.    End If 
  2062.   Next B
  2063.   For B=1 To NUMEROP
  2064.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  2065.     Add PESONETTOP(P),-PESOP(B)*1000
  2066.     Add PESONETTOP(P),-PESONETTOP(B)
  2067.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  2068.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  2069.    End If 
  2070.   Next B
  2071.  End If 
  2072.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2073.   If PERSONAGGIOTROVATO=0
  2074.    Print NOMEP$(P);" ti d� 1 ";
  2075.   Else 
  2076.    Print NOMEP$(P);" d� 1 ";
  2077.   End If 
  2078.   If Btst(1,TIPOO(A))=True
  2079.    Print NOMESRO$(CATEGORIAO(A));
  2080.   Else 
  2081.    Print NOMESCO$(CATEGORIAO(A));
  2082.   End If 
  2083.   If PERSONAGGIOTROVATO=0
  2084.    Print 
  2085.   Else 
  2086.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2087.   End If 
  2088.  End If 
  2089.  Dec PARABAZIONEP(AZIONE,P)
  2090.  If PARABAZIONEP(AZIONE,P)=0
  2091.   FINEA(AZIONE,P)=True
  2092.  End If 
  2093. End If 
  2094. End Proc
  2095. Procedure DAIAPABP[AZIONE,P]
  2096. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2097. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2098.  PERSONAGGIOTROVATO=A
  2099. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2100.  PERSONAGGIOTROVATO=A
  2101. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2102.  PERSONAGGIOTROVATO=A
  2103. End If 
  2104. If PERSONAGGIOTROVATO>-1
  2105.  For A=0 To NUMEROP
  2106.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2107.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2108.    Add PESONETTOP(P),-PESOP(A)*1000
  2109.    Add PESONETTOP(P),-PESONETTOP(A)
  2110.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2111.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2112.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2113.     If PERSONAGGIOTROVATO=0
  2114.      Print NOMEP$(P);" ti d� ";
  2115.     Else 
  2116.      Print NOMEP$(P);" d� ";
  2117.     End If 
  2118.     Print NOMEP$(A);
  2119.     If PERSONAGGIOTROVATO=0
  2120.      Print 
  2121.     Else 
  2122.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2123.     End If 
  2124.    End If 
  2125.    Dec PARABAZIONEP(AZIONE,P)
  2126.    If PARABAZIONEP(AZIONE,P)=0
  2127.     FINEA(AZIONE,P)=True
  2128.    End If 
  2129.    Exit 
  2130.   End If 
  2131.  Next A
  2132. End If 
  2133. End Proc
  2134. Procedure DAIAPAPB[AZIONE,P]
  2135. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2136. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2137.  PERSONAGGIOTROVATO=A
  2138. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2139.  PERSONAGGIOTROVATO=A
  2140. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2141.  PERSONAGGIOTROVATO=A
  2142. End If 
  2143. If PERSONAGGIOTROVATO>-1
  2144.  A=PARABAZIONEP(AZIONE,P)
  2145.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2146.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2147.   Add PESONETTOP(P),-PESOP(A)*1000
  2148.   Add PESONETTOP(P),-PESONETTOP(A)
  2149.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2150.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2151.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2152.    If PERSONAGGIOTROVATO=0
  2153.     Print NOMEP$(P);" ti d� ";
  2154.    Else 
  2155.     Print NOMEP$(P);" d� ";
  2156.    End If 
  2157.    Print NOMEP$(A);
  2158.    If PERSONAGGIOTROVATO=0
  2159.     Print 
  2160.    Else 
  2161.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2162.    End If 
  2163.   End If 
  2164.   FINEA(AZIONE,P)=True
  2165.  End If 
  2166. End If 
  2167. End Proc
  2168. Procedure DAIDEISOLDI
  2169. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi dare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDIDADARE$;
  2170. Curs Off 
  2171. If SOLDIDADARE$<>""
  2172.  SOLDIDADARE=Val(SOLDIDADARE$)
  2173.  Proc LIMITI[SOLDIDADARE,0,SOLDIP(0)] : SOLDIDADARE=Param
  2174.  If SOLDIDADARE>0
  2175.   Add SOLDIP(0),-SOLDIDADARE*PESOS
  2176.   Proc PERSONAGGIORICEVENTE["S",SOLDIDADARE]
  2177.  End If 
  2178. End If 
  2179. End Proc
  2180. Procedure DAIUNOGGETTO
  2181. For A=0 To NUMEROCO
  2182.  If OGGETTIDELPERSONAGGIO0(A)>0
  2183.   Inc CATEGORIEOGGETTI
  2184.  End If 
  2185.  If RESTIDELPERSONAGGIO0(A)>0
  2186.   Inc CATEGORIEOGGETTI
  2187.  End If 
  2188. Next A
  2189. If CATEGORIEOGGETTI>0
  2190.  If CATEGORIEOGGETTI>1
  2191.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi dare ?>";OGGETTO$;
  2192.   Curs Off 
  2193.   For A=0 To NUMEROO
  2194.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2195.     If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  2196.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2197.     Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  2198.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2199.     End If 
  2200.    End If 
  2201.   Next A
  2202.  Else 
  2203.   For A=0 To NUMEROO
  2204.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2205.     Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2206.    End If 
  2207.   Next A
  2208.  End If 
  2209. End If 
  2210. End Proc
  2211. Procedure DAIUNPERSONAGGIO
  2212. For A=1 To NUMEROP
  2213.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2214.   Inc PERSONAGGI
  2215.  End If 
  2216. Next A
  2217. If PERSONAGGI>0
  2218.  If PERSONAGGI>1
  2219.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi dare ?>";PERSONAGGIO$;
  2220.   Curs Off 
  2221.   For A=0 To NUMEROP
  2222.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2223.     Proc PERSONAGGIORICEVENTE["P",A]
  2224.     Exit 
  2225.    End If 
  2226.   Next A
  2227.   If A=NUMEROP+1
  2228.    Locate 0,ULTIMALINEA : Cline : Print "Non trasporti nessun ";PERSONAGGIO$;
  2229.    If _MUSICA=False
  2230.     Bell 1
  2231.    End If 
  2232.    Proc _ASPETTA
  2233.   End If 
  2234.  Else 
  2235.   For A=0 To NUMEROP
  2236.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2237.     Proc PERSONAGGIORICEVENTE["P",A]
  2238.    End If 
  2239.   Next A
  2240.  End If 
  2241. End If 
  2242. End Proc
  2243. Procedure DAVARIABILIABANCO[M0DO]
  2244. Shared LUNGHEZZABANCO
  2245. SENZAMEMORIA=False
  2246. If M0DO=True
  2247.  TIC["Vuoi salvare anche il tempo trascorso di gioco (s/n) ?",ULTIMALINEA]
  2248.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  2249.  If RISPOSTA$="s"
  2250.   TEMP0TRASCORSODASALVARE=TEMP0TRASCORSO
  2251.  Else 
  2252.   TEMP0TRASCORSODASALVARE=0
  2253.  End If 
  2254.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  2255.  Reserve As Work BANCO,LUNGHEZZABANCO
  2256.  INDIRIZZO=Start(BANCO)
  2257.  Poke$ INDIRIZZO,"Adventures Conceiver"+Chr$(10)
  2258.  Add INDIRIZZO,21
  2259.  DATO$="Nemici attivi o no:"+Chr$(10)
  2260.  Poke$ INDIRIZZO,DATO$
  2261.  Add INDIRIZZO,Len(DATO$)
  2262.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2263.  Poke$ INDIRIZZO,DATO$
  2264.  Add INDIRIZZO,Len(DATO$)
  2265.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2266.  Poke$ INDIRIZZO,DATO$
  2267.  Add INDIRIZZO,Len(DATO$)
  2268.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2269.  Poke$ INDIRIZZO,DATO$
  2270.  Add INDIRIZZO,Len(DATO$)
  2271.  For A=0 To NUMEROCO
  2272.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2273.   Poke$ INDIRIZZO,DATO$
  2274.   Add INDIRIZZO,Len(DATO$)
  2275.   DATO$="Nome singolare:"+Chr$(10)
  2276.   Poke$ INDIRIZZO,DATO$
  2277.   Add INDIRIZZO,Len(DATO$)
  2278.   DATO$=NOMESCO$(A)+Chr$(10)
  2279.   Poke$ INDIRIZZO,DATO$
  2280.   Add INDIRIZZO,Len(DATO$)
  2281.   DATO$="Nome plurale:"+Chr$(10)
  2282.   Poke$ INDIRIZZO,DATO$
  2283.   Add INDIRIZZO,Len(DATO$)
  2284.   DATO$=NOMEPCO$(A)+Chr$(10)
  2285.   Poke$ INDIRIZZO,DATO$
  2286.   Add INDIRIZZO,Len(DATO$)
  2287.   DATO$="Nome singolare resto:"+Chr$(10)
  2288.   Poke$ INDIRIZZO,DATO$
  2289.   Add INDIRIZZO,Len(DATO$)
  2290.   DATO$=NOMESRO$(A)+Chr$(10)
  2291.   Poke$ INDIRIZZO,DATO$
  2292.   Add INDIRIZZO,Len(DATO$)
  2293.   DATO$="Nome plurale resto:"+Chr$(10)
  2294.   Poke$ INDIRIZZO,DATO$
  2295.   Add INDIRIZZO,Len(DATO$)
  2296.   DATO$=NOMEPRO$(A)+Chr$(10)
  2297.   Poke$ INDIRIZZO,DATO$
  2298.   Add INDIRIZZO,Len(DATO$)
  2299.   DATO$="Peso:"+Chr$(10)
  2300.   Poke$ INDIRIZZO,DATO$
  2301.   Add INDIRIZZO,Len(DATO$)
  2302.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2303.   Poke$ INDIRIZZO,DATO$
  2304.   Add INDIRIZZO,Len(DATO$)
  2305.   DATO$="Peso resto:"+Chr$(10)
  2306.   Poke$ INDIRIZZO,DATO$
  2307.   Add INDIRIZZO,Len(DATO$)
  2308.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2309.   Poke$ INDIRIZZO,DATO$
  2310.   Add INDIRIZZO,Len(DATO$)
  2311.   DATO$="Tipo:"+Chr$(10)
  2312.   Poke$ INDIRIZZO,DATO$
  2313.   Add INDIRIZZO,Len(DATO$)
  2314.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2315.   Poke$ INDIRIZZO,DATO$
  2316.   Add INDIRIZZO,Len(DATO$)
  2317.   DATO$="Parametro tipo:"+Chr$(10)
  2318.   Poke$ INDIRIZZO,DATO$
  2319.   Add INDIRIZZO,Len(DATO$)
  2320.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2321.   Poke$ INDIRIZZO,DATO$
  2322.   Add INDIRIZZO,Len(DATO$)
  2323.   DATO$="Descrizione:"+Chr$(10)
  2324.   Poke$ INDIRIZZO,DATO$
  2325.   Add INDIRIZZO,Len(DATO$)
  2326.   DATO$=DESCRIZIONECO$(A)+"|"
  2327.   Poke$ INDIRIZZO,DATO$
  2328.   Add INDIRIZZO,Len(DATO$)
  2329.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2330.   Poke$ INDIRIZZO,DATO$
  2331.   Add INDIRIZZO,Len(DATO$)
  2332.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2333.   Poke$ INDIRIZZO,DATO$
  2334.   Add INDIRIZZO,Len(DATO$)
  2335.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2336.   Poke$ INDIRIZZO,DATO$
  2337.   Add INDIRIZZO,Len(DATO$)
  2338.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2339.   Poke$ INDIRIZZO,DATO$
  2340.   Add INDIRIZZO,Len(DATO$)
  2341.   DATO$="Oggetto dato:"+Chr$(10)
  2342.   Poke$ INDIRIZZO,DATO$
  2343.   Add INDIRIZZO,Len(DATO$)
  2344.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2345.   Poke$ INDIRIZZO,DATO$
  2346.   Add INDIRIZZO,Len(DATO$)
  2347.  Next A
  2348.  DATO$="Numero degli edifici:"+Chr$(10)
  2349.  Poke$ INDIRIZZO,DATO$
  2350.  Add INDIRIZZO,Len(DATO$)
  2351.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2352.  Poke$ INDIRIZZO,DATO$
  2353.  Add INDIRIZZO,Len(DATO$)
  2354.  If NUMERO>-1
  2355.   For A=0 To NUMEROE
  2356.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2357.    Poke$ INDIRIZZO,DATO$
  2358.    Add INDIRIZZO,Len(DATO$)
  2359.    DATO$="Nome:"+Chr$(10)
  2360.    Poke$ INDIRIZZO,DATO$
  2361.    Add INDIRIZZO,Len(DATO$)
  2362.    DATO$=NOMEE$(A)+Chr$(10)
  2363.    Poke$ INDIRIZZO,DATO$
  2364.    Add INDIRIZZO,Len(DATO$)
  2365.    DATO$="Descrizione:"+Chr$(10)
  2366.    Poke$ INDIRIZZO,DATO$
  2367.    Add INDIRIZZO,Len(DATO$)
  2368.    DATO$=DESCRIZIONEE$(A)+"|"
  2369.    Poke$ INDIRIZZO,DATO$
  2370.    Add INDIRIZZO,Len(DATO$)
  2371.    DATO$="Numero delle stanze:"+Chr$(10)
  2372.    Poke$ INDIRIZZO,DATO$
  2373.    Add INDIRIZZO,Len(DATO$)
  2374.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2375.    Poke$ INDIRIZZO,DATO$
  2376.    Add INDIRIZZO,Len(DATO$)
  2377.    For B=0 To NUMEROS(A)
  2378.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2379.     Poke$ INDIRIZZO,DATO$
  2380.     Add INDIRIZZO,Len(DATO$)
  2381.     DATO$="Nome:"+Chr$(10)
  2382.     Poke$ INDIRIZZO,DATO$
  2383.     Add INDIRIZZO,Len(DATO$)
  2384.     DATO$=NOMES$(B,A)+Chr$(10)
  2385.     Poke$ INDIRIZZO,DATO$
  2386.     Add INDIRIZZO,Len(DATO$)
  2387.     DATO$="Luogo a Nord:"+Chr$(10)
  2388.     Poke$ INDIRIZZO,DATO$
  2389.     Add INDIRIZZO,Len(DATO$)
  2390.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2391.     Poke$ INDIRIZZO,DATO$
  2392.     Add INDIRIZZO,Len(DATO$)
  2393.     DATO$="Luogo a NordEst:"+Chr$(10)
  2394.     Poke$ INDIRIZZO,DATO$
  2395.     Add INDIRIZZO,Len(DATO$)
  2396.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2397.     Poke$ INDIRIZZO,DATO$
  2398.     Add INDIRIZZO,Len(DATO$)
  2399.     DATO$="Luogo a Est:"+Chr$(10)
  2400.     Poke$ INDIRIZZO,DATO$
  2401.     Add INDIRIZZO,Len(DATO$)
  2402.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2403.     Poke$ INDIRIZZO,DATO$
  2404.     Add INDIRIZZO,Len(DATO$)
  2405.     DATO$="Luogo a SudEst:"+Chr$(10)
  2406.     Poke$ INDIRIZZO,DATO$
  2407.     Add INDIRIZZO,Len(DATO$)
  2408.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2409.     Poke$ INDIRIZZO,DATO$
  2410.     Add INDIRIZZO,Len(DATO$)
  2411.     DATO$="Luogo a Sud:"+Chr$(10)
  2412.     Poke$ INDIRIZZO,DATO$
  2413.     Add INDIRIZZO,Len(DATO$)
  2414.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2415.     Poke$ INDIRIZZO,DATO$
  2416.     Add INDIRIZZO,Len(DATO$)
  2417.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2418.     Poke$ INDIRIZZO,DATO$
  2419.     Add INDIRIZZO,Len(DATO$)
  2420.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2421.     Poke$ INDIRIZZO,DATO$
  2422.     Add INDIRIZZO,Len(DATO$)
  2423.     DATO$="Luogo a Ovest:"+Chr$(10)
  2424.     Poke$ INDIRIZZO,DATO$
  2425.     Add INDIRIZZO,Len(DATO$)
  2426.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2427.     Poke$ INDIRIZZO,DATO$
  2428.     Add INDIRIZZO,Len(DATO$)
  2429.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2430.     Poke$ INDIRIZZO,DATO$
  2431.     Add INDIRIZZO,Len(DATO$)
  2432.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2433.     Poke$ INDIRIZZO,DATO$
  2434.     Add INDIRIZZO,Len(DATO$)
  2435.     DATO$="Luogo Sopra:"+Chr$(10)
  2436.     Poke$ INDIRIZZO,DATO$
  2437.     Add INDIRIZZO,Len(DATO$)
  2438.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2439.     Poke$ INDIRIZZO,DATO$
  2440.     Add INDIRIZZO,Len(DATO$)
  2441.     DATO$="Luogo Sotto:"+Chr$(10)
  2442.     Poke$ INDIRIZZO,DATO$
  2443.     Add INDIRIZZO,Len(DATO$)
  2444.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2445.     Poke$ INDIRIZZO,DATO$
  2446.     Add INDIRIZZO,Len(DATO$)
  2447.     DATO$="Soldi:"+Chr$(10)
  2448.     Poke$ INDIRIZZO,DATO$
  2449.     Add INDIRIZZO,Len(DATO$)
  2450.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2451.     Poke$ INDIRIZZO,DATO$
  2452.     Add INDIRIZZO,Len(DATO$)
  2453.     DATO$="Descrizione:"+Chr$(10)
  2454.     Poke$ INDIRIZZO,DATO$
  2455.     Add INDIRIZZO,Len(DATO$)
  2456.     DATO$=DESCRIZIONES$(B,A)+"|"
  2457.     Poke$ INDIRIZZO,DATO$
  2458.     Add INDIRIZZO,Len(DATO$)
  2459.    Next B
  2460.   Next A
  2461.  End If 
  2462.  DATO$="Numero dei luoghi:"+Chr$(10)
  2463.  Poke$ INDIRIZZO,DATO$
  2464.  Add INDIRIZZO,Len(DATO$)
  2465.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2466.  Poke$ INDIRIZZO,DATO$
  2467.  Add INDIRIZZO,Len(DATO$)
  2468.  For A=0 To NUMEROL
  2469.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2470.   Poke$ INDIRIZZO,DATO$
  2471.   Add INDIRIZZO,Len(DATO$)
  2472.   DATO$="Nome:"+Chr$(10)
  2473.   Poke$ INDIRIZZO,DATO$
  2474.   Add INDIRIZZO,Len(DATO$)
  2475.   DATO$=NOMEL$(A)+Chr$(10)
  2476.   Poke$ INDIRIZZO,DATO$
  2477.   Add INDIRIZZO,Len(DATO$)
  2478.   DATO$="Luogo a Nord:"+Chr$(10)
  2479.   Poke$ INDIRIZZO,DATO$
  2480.   Add INDIRIZZO,Len(DATO$)
  2481.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2482.   Poke$ INDIRIZZO,DATO$
  2483.   Add INDIRIZZO,Len(DATO$)
  2484.   DATO$="Luogo a NordEst:"+Chr$(10)
  2485.   Poke$ INDIRIZZO,DATO$
  2486.   Add INDIRIZZO,Len(DATO$)
  2487.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  2488.   Poke$ INDIRIZZO,DATO$
  2489.   Add INDIRIZZO,Len(DATO$)
  2490.   DATO$="Luogo a Est:"+Chr$(10)
  2491.   Poke$ INDIRIZZO,DATO$
  2492.   Add INDIRIZZO,Len(DATO$)
  2493.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  2494.   Poke$ INDIRIZZO,DATO$
  2495.   Add INDIRIZZO,Len(DATO$)
  2496.   DATO$="Luogo a SudEst:"+Chr$(10)
  2497.   Poke$ INDIRIZZO,DATO$
  2498.   Add INDIRIZZO,Len(DATO$)
  2499.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  2500.   Poke$ INDIRIZZO,DATO$
  2501.   Add INDIRIZZO,Len(DATO$)
  2502.   DATO$="Luogo a Sud:"+Chr$(10)
  2503.   Poke$ INDIRIZZO,DATO$
  2504.   Add INDIRIZZO,Len(DATO$)
  2505.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  2506.   Poke$ INDIRIZZO,DATO$
  2507.   Add INDIRIZZO,Len(DATO$)
  2508.   DATO$="Luogo a SudOvest:"+Chr$(10)
  2509.   Poke$ INDIRIZZO,DATO$
  2510.   Add INDIRIZZO,Len(DATO$)
  2511.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  2512.   Poke$ INDIRIZZO,DATO$
  2513.   Add INDIRIZZO,Len(DATO$)
  2514.   DATO$="Luogo a Ovest:"+Chr$(10)
  2515.   Poke$ INDIRIZZO,DATO$
  2516.   Add INDIRIZZO,Len(DATO$)
  2517.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  2518.   Poke$ INDIRIZZO,DATO$
  2519.   Add INDIRIZZO,Len(DATO$)
  2520.   DATO$="Luogo a NordOvest:"+Chr$(10)
  2521.   Poke$ INDIRIZZO,DATO$
  2522.   Add INDIRIZZO,Len(DATO$)
  2523.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  2524.   Poke$ INDIRIZZO,DATO$
  2525.   Add INDIRIZZO,Len(DATO$)
  2526.   DATO$="Luogo Sopra:"+Chr$(10)
  2527.   Poke$ INDIRIZZO,DATO$
  2528.   Add INDIRIZZO,Len(DATO$)
  2529.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  2530.   Poke$ INDIRIZZO,DATO$
  2531.   Add INDIRIZZO,Len(DATO$)
  2532.   DATO$="Luogo Sotto:"+Chr$(10)
  2533.   Poke$ INDIRIZZO,DATO$
  2534.   Add INDIRIZZO,Len(DATO$)
  2535.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  2536.   Poke$ INDIRIZZO,DATO$
  2537.   Add INDIRIZZO,Len(DATO$)
  2538.   DATO$="Soldi:"+Chr$(10)
  2539.   Poke$ INDIRIZZO,DATO$
  2540.   Add INDIRIZZO,Len(DATO$)
  2541.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  2542.   Poke$ INDIRIZZO,DATO$
  2543.   Add INDIRIZZO,Len(DATO$)
  2544.   DATO$="Regione:"+Chr$(10)
  2545.   Poke$ INDIRIZZO,DATO$
  2546.   Add INDIRIZZO,Len(DATO$)
  2547.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  2548.   Poke$ INDIRIZZO,DATO$
  2549.   Add INDIRIZZO,Len(DATO$)
  2550.   DATO$="Tipo di luogo:"+Chr$(10)
  2551.   Poke$ INDIRIZZO,DATO$
  2552.   Add INDIRIZZO,Len(DATO$)
  2553.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  2554.   Poke$ INDIRIZZO,DATO$
  2555.   Add INDIRIZZO,Len(DATO$)
  2556.   DATO$="Descrizione:"+Chr$(10)
  2557.   Poke$ INDIRIZZO,DATO$
  2558.   Add INDIRIZZO,Len(DATO$)
  2559.   DATO$=DESCRIZIONEL$(A)+"|"
  2560.   Poke$ INDIRIZZO,DATO$
  2561.   Add INDIRIZZO,Len(DATO$)
  2562.  Next A
  2563.  DATO$="Numero degli oggetti:"+Chr$(10)
  2564.  Poke$ INDIRIZZO,DATO$
  2565.  Add INDIRIZZO,Len(DATO$)
  2566.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  2567.  Poke$ INDIRIZZO,DATO$
  2568.  Add INDIRIZZO,Len(DATO$)
  2569.  For A=0 To NUMEROO
  2570.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  2571.   Poke$ INDIRIZZO,DATO$
  2572.   Add INDIRIZZO,Len(DATO$)
  2573.   DATO$="Categoria:"+Chr$(10)
  2574.   Poke$ INDIRIZZO,DATO$
  2575.   Add INDIRIZZO,Len(DATO$)
  2576.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  2577.   Poke$ INDIRIZZO,DATO$
  2578.   Add INDIRIZZO,Len(DATO$)
  2579.   DATO$="Posizione:"+Chr$(10)
  2580.   Poke$ INDIRIZZO,DATO$
  2581.   Add INDIRIZZO,Len(DATO$)
  2582.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  2583.   Poke$ INDIRIZZO,DATO$
  2584.   Add INDIRIZZO,Len(DATO$)
  2585.   DATO$="Tipo:"+Chr$(10)
  2586.   Poke$ INDIRIZZO,DATO$
  2587.   Add INDIRIZZO,Len(DATO$)
  2588.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  2589.   Poke$ INDIRIZZO,DATO$
  2590.   Add INDIRIZZO,Len(DATO$)
  2591.  Next A
  2592.  DATO$="Numero dei personaggi:"+Chr$(10)
  2593.  Poke$ INDIRIZZO,DATO$
  2594.  Add INDIRIZZO,Len(DATO$)
  2595.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  2596.  Poke$ INDIRIZZO,DATO$
  2597.  Add INDIRIZZO,Len(DATO$)
  2598.  For A=0 To NUMEROP
  2599.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  2600.   Poke$ INDIRIZZO,DATO$
  2601.   Add INDIRIZZO,Len(DATO$)
  2602.   DATO$="Nome:"+Chr$(10)
  2603.   Poke$ INDIRIZZO,DATO$
  2604.   Add INDIRIZZO,Len(DATO$)
  2605.   DATO$=NOMEP$(A)+Chr$(10)
  2606.   Poke$ INDIRIZZO,DATO$
  2607.   Add INDIRIZZO,Len(DATO$)
  2608.   DATO$="Posizione:"+Chr$(10)
  2609.   Poke$ INDIRIZZO,DATO$
  2610.   Add INDIRIZZO,Len(DATO$)
  2611.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  2612.   Poke$ INDIRIZZO,DATO$
  2613.   Add INDIRIZZO,Len(DATO$)
  2614.   DATO$="Costituzione:"+Chr$(10)
  2615.   Poke$ INDIRIZZO,DATO$
  2616.   Add INDIRIZZO,Len(DATO$)
  2617.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  2618.   Poke$ INDIRIZZO,DATO$
  2619.   Add INDIRIZZO,Len(DATO$)
  2620.   DATO$="Destrezza:"+Chr$(10)
  2621.   Poke$ INDIRIZZO,DATO$
  2622.   Add INDIRIZZO,Len(DATO$)
  2623.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  2624.   Poke$ INDIRIZZO,DATO$
  2625.   Add INDIRIZZO,Len(DATO$)
  2626.   DATO$="Forza:"+Chr$(10)
  2627.   Poke$ INDIRIZZO,DATO$
  2628.   Add INDIRIZZO,Len(DATO$)
  2629.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  2630.   Poke$ INDIRIZZO,DATO$
  2631.   Add INDIRIZZO,Len(DATO$)
  2632.   DATO$="Peso:"+Chr$(10)
  2633.   Poke$ INDIRIZZO,DATO$
  2634.   Add INDIRIZZO,Len(DATO$)
  2635.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  2636.   Poke$ INDIRIZZO,DATO$
  2637.   Add INDIRIZZO,Len(DATO$)
  2638.   DATO$="Peso netto:"+Chr$(10)
  2639.   Poke$ INDIRIZZO,DATO$
  2640.   Add INDIRIZZO,Len(DATO$)
  2641.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  2642.   Poke$ INDIRIZZO,DATO$
  2643.   Add INDIRIZZO,Len(DATO$)
  2644.   DATO$="Resistenza:"+Chr$(10)
  2645.   Poke$ INDIRIZZO,DATO$
  2646.   Add INDIRIZZO,Len(DATO$)
  2647.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  2648.   Poke$ INDIRIZZO,DATO$
  2649.   Add INDIRIZZO,Len(DATO$)
  2650.   DATO$="Soldi:"+Chr$(10)
  2651.   Poke$ INDIRIZZO,DATO$
  2652.   Add INDIRIZZO,Len(DATO$)
  2653.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  2654.   Poke$ INDIRIZZO,DATO$
  2655.   Add INDIRIZZO,Len(DATO$)
  2656.   DATO$="Tipo:"+Chr$(10)
  2657.   Poke$ INDIRIZZO,DATO$
  2658.   Add INDIRIZZO,Len(DATO$)
  2659.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  2660.   Poke$ INDIRIZZO,DATO$
  2661.   Add INDIRIZZO,Len(DATO$)
  2662.   DATO$="Descrizione:"+Chr$(10)
  2663.   Poke$ INDIRIZZO,DATO$
  2664.   Add INDIRIZZO,Len(DATO$)
  2665.   DATO$=DESCRIZIONEP$(A)+"|"
  2666.   Poke$ INDIRIZZO,DATO$
  2667.   Add INDIRIZZO,Len(DATO$)
  2668.   DATO$="Inizio sonno:"+Chr$(10)
  2669.   Poke$ INDIRIZZO,DATO$
  2670.   Add INDIRIZZO,Len(DATO$)
  2671.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  2672.   Poke$ INDIRIZZO,DATO$
  2673.   Add INDIRIZZO,Len(DATO$)
  2674.   DATO$="Durata sonno:"+Chr$(10)
  2675.   Poke$ INDIRIZZO,DATO$
  2676.   Add INDIRIZZO,Len(DATO$)
  2677.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  2678.   Poke$ INDIRIZZO,DATO$
  2679.   Add INDIRIZZO,Len(DATO$)
  2680.   DATO$="Direzione presa:"+Chr$(10)
  2681.   Poke$ INDIRIZZO,DATO$
  2682.   Add INDIRIZZO,Len(DATO$)
  2683.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  2684.   Poke$ INDIRIZZO,DATO$
  2685.   Add INDIRIZZO,Len(DATO$)
  2686.   DATO$="Luogo di destinazione:"+Chr$(10)
  2687.   Poke$ INDIRIZZO,DATO$
  2688.   Add INDIRIZZO,Len(DATO$)
  2689.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  2690.   Poke$ INDIRIZZO,DATO$
  2691.   Add INDIRIZZO,Len(DATO$)
  2692.   DATO$="Tempo di attraversamento:"+Chr$(10)
  2693.   Poke$ INDIRIZZO,DATO$
  2694.   Add INDIRIZZO,Len(DATO$)
  2695.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  2696.   Poke$ INDIRIZZO,DATO$
  2697.   Add INDIRIZZO,Len(DATO$)
  2698.   DATO$="Soldi ricevuti:"+Chr$(10)
  2699.   Poke$ INDIRIZZO,DATO$
  2700.   Add INDIRIZZO,Len(DATO$)
  2701.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  2702.   Poke$ INDIRIZZO,DATO$
  2703.   Add INDIRIZZO,Len(DATO$)
  2704.   For B=0 To 7
  2705.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  2706.    Poke$ INDIRIZZO,DATO$
  2707.    Add INDIRIZZO,Len(DATO$)
  2708.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  2709.    Poke$ INDIRIZZO,DATO$
  2710.    Add INDIRIZZO,Len(DATO$)
  2711.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  2712.    Poke$ INDIRIZZO,DATO$
  2713.    Add INDIRIZZO,Len(DATO$)
  2714.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  2715.    Poke$ INDIRIZZO,DATO$
  2716.    Add INDIRIZZO,Len(DATO$)
  2717.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  2718.    Poke$ INDIRIZZO,DATO$
  2719.    Add INDIRIZZO,Len(DATO$)
  2720.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  2721.    Poke$ INDIRIZZO,DATO$
  2722.    Add INDIRIZZO,Len(DATO$)
  2723.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  2724.    Poke$ INDIRIZZO,DATO$
  2725.    Add INDIRIZZO,Len(DATO$)
  2726.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  2727.    Poke$ INDIRIZZO,DATO$
  2728.    Add INDIRIZZO,Len(DATO$)
  2729.   Next B
  2730.   DATO$="Posizione azione:"+Chr$(10)
  2731.   Poke$ INDIRIZZO,DATO$
  2732.   Add INDIRIZZO,Len(DATO$)
  2733.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  2734.   Poke$ INDIRIZZO,DATO$
  2735.   Add INDIRIZZO,Len(DATO$)
  2736.  Next A
  2737.  DATO$="Numero delle regioni:"+Chr$(10)
  2738.  Poke$ INDIRIZZO,DATO$
  2739.  Add INDIRIZZO,Len(DATO$)
  2740.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  2741.  Poke$ INDIRIZZO,DATO$
  2742.  Add INDIRIZZO,Len(DATO$)
  2743.  For A=0 To NUMEROR
  2744.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  2745.   Poke$ INDIRIZZO,DATO$
  2746.   Add INDIRIZZO,Len(DATO$)
  2747.   DATO$="Nome:"+Chr$(10)
  2748.   Poke$ INDIRIZZO,DATO$
  2749.   Add INDIRIZZO,Len(DATO$)
  2750.   DATO$=NOMER$(A)+Chr$(10)
  2751.   Poke$ INDIRIZZO,DATO$
  2752.   Add INDIRIZZO,Len(DATO$)
  2753.  Next A
  2754.  DATO$="Giornata:"+Chr$(10)
  2755.  Poke$ INDIRIZZO,DATO$
  2756.  Add INDIRIZZO,Len(DATO$)
  2757.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  2758.  Poke$ INDIRIZZO,DATO$
  2759.  Add INDIRIZZO,Len(DATO$)
  2760.  DATO$="Tempo trascorso:"+Chr$(10)
  2761.  Poke$ INDIRIZZO,DATO$
  2762.  Add INDIRIZZO,Len(DATO$)
  2763.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  2764.  Poke$ INDIRIZZO,DATO$
  2765.  Add INDIRIZZO,Len(DATO$)
  2766.  If INDIRIZZO>Start(BANCO)+Length(BANCO)
  2767.   Proc TIC["Conversione dati fallita!",ULTIMALINEA]
  2768.   Proc _ASPETTA
  2769.   SENZAMEMORIA=True
  2770.  End If 
  2771. Else 
  2772.  Cls 
  2773.  Proc TIC["Sto calcolando la lunghezza del banco dei dati...",ULTIMALINEA]
  2774.  INDIRIZZO=21
  2775.  Print At(0,0);"Lunghezza banco>";Str$(INDIRIZZO)-" ";" Byte"
  2776.  DATO$="Nemici attivi o no:"+Chr$(10)
  2777.  Add INDIRIZZO,Len(DATO$)
  2778.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2779.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2780.  Add INDIRIZZO,Len(DATO$)
  2781.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2782.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2783.  Add INDIRIZZO,Len(DATO$)
  2784.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2785.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2786.  Add INDIRIZZO,Len(DATO$)
  2787.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2788.  For A=0 To NUMEROCO
  2789.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2790.   Add INDIRIZZO,Len(DATO$)
  2791.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2792.   DATO$="Nome singolare:"+Chr$(10)
  2793.   Add INDIRIZZO,Len(DATO$)
  2794.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2795.   DATO$=NOMESCO$(A)+Chr$(10)
  2796.   Add INDIRIZZO,Len(DATO$)
  2797.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2798.   DATO$="Nome plurale:"+Chr$(10)
  2799.   Add INDIRIZZO,Len(DATO$)
  2800.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2801.   DATO$=NOMEPCO$(A)+Chr$(10)
  2802.   Add INDIRIZZO,Len(DATO$)
  2803.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2804.   DATO$="Nome singolare resto:"+Chr$(10)
  2805.   Add INDIRIZZO,Len(DATO$)
  2806.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2807.   DATO$=NOMESRO$(A)+Chr$(10)
  2808.   Add INDIRIZZO,Len(DATO$)
  2809.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2810.   DATO$="Nome plurale resto:"+Chr$(10)
  2811.   Add INDIRIZZO,Len(DATO$)
  2812.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2813.   DATO$=NOMEPRO$(A)+Chr$(10)
  2814.   Add INDIRIZZO,Len(DATO$)
  2815.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2816.   DATO$="Peso:"+Chr$(10)
  2817.   Add INDIRIZZO,Len(DATO$)
  2818.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2819.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2820.   Add INDIRIZZO,Len(DATO$)
  2821.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2822.   DATO$="Peso resto:"+Chr$(10)
  2823.   Add INDIRIZZO,Len(DATO$)
  2824.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2825.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2826.   Add INDIRIZZO,Len(DATO$)
  2827.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2828.   DATO$="Tipo:"+Chr$(10)
  2829.   Add INDIRIZZO,Len(DATO$)
  2830.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2831.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2832.   Add INDIRIZZO,Len(DATO$)
  2833.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2834.   DATO$="Parametro tipo:"+Chr$(10)
  2835.   Add INDIRIZZO,Len(DATO$)
  2836.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2837.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2838.   Add INDIRIZZO,Len(DATO$)
  2839.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2840.   DATO$="Descrizione:"+Chr$(10)
  2841.   Add INDIRIZZO,Len(DATO$)
  2842.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2843.   DATO$=DESCRIZIONECO$(A)+"|"
  2844.   Add INDIRIZZO,Len(DATO$)
  2845.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2846.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2847.   Add INDIRIZZO,Len(DATO$)
  2848.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2849.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2850.   Add INDIRIZZO,Len(DATO$)
  2851.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2852.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2853.   Add INDIRIZZO,Len(DATO$)
  2854.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2855.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2856.   Add INDIRIZZO,Len(DATO$)
  2857.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2858.   DATO$="Oggetto dato:"+Chr$(10)
  2859.   Add INDIRIZZO,Len(DATO$)
  2860.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2861.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2862.   Add INDIRIZZO,Len(DATO$)
  2863.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2864.  Next A
  2865.  DATO$="Numero degli edifici:"+Chr$(10)
  2866.  Add INDIRIZZO,Len(DATO$)
  2867.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2868.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2869.  Add INDIRIZZO,Len(DATO$)
  2870.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2871.  If NUMERO>-1
  2872.   For A=0 To NUMEROE
  2873.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2874.    Add INDIRIZZO,Len(DATO$)
  2875.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2876.    DATO$="Nome:"+Chr$(10)
  2877.    Add INDIRIZZO,Len(DATO$)
  2878.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2879.    DATO$=NOMEE$(A)+Chr$(10)
  2880.    Add INDIRIZZO,Len(DATO$)
  2881.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2882.    DATO$="Descrizione:"+Chr$(10)
  2883.    Add INDIRIZZO,Len(DATO$)
  2884.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2885.    DATO$=DESCRIZIONEE$(A)+"|"
  2886.    Add INDIRIZZO,Len(DATO$)
  2887.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2888.    DATO$="Numero delle stanze:"+Chr$(10)
  2889.    Add INDIRIZZO,Len(DATO$)
  2890.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2891.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2892.    Add INDIRIZZO,Len(DATO$)
  2893.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2894.    For B=0 To NUMEROS(A)
  2895.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2896.     Add INDIRIZZO,Len(DATO$)
  2897.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2898.     DATO$="Nome:"+Chr$(10)
  2899.     Add INDIRIZZO,Len(DATO$)
  2900.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2901.     DATO$=NOMES$(B,A)+Chr$(10)
  2902.     Add INDIRIZZO,Len(DATO$)
  2903.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2904.     DATO$="Luogo a Nord:"+Chr$(10)
  2905.     Add INDIRIZZO,Len(DATO$)
  2906.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2907.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2908.     Add INDIRIZZO,Len(DATO$)
  2909.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2910.     DATO$="Luogo a NordEst:"+Chr$(10)
  2911.     Add INDIRIZZO,Len(DATO$)
  2912.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2913.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2914.     Add INDIRIZZO,Len(DATO$)
  2915.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2916.     DATO$="Luogo a Est:"+Chr$(10)
  2917.     Add INDIRIZZO,Len(DATO$)
  2918.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2919.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2920.     Add INDIRIZZO,Len(DATO$)
  2921.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2922.     DATO$="Luogo a SudEst:"+Chr$(10)
  2923.     Add INDIRIZZO,Len(DATO$)
  2924.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2925.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2926.     Add INDIRIZZO,Len(DATO$)
  2927.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2928.     DATO$="Luogo a Sud:"+Chr$(10)
  2929.     Add INDIRIZZO,Len(DATO$)
  2930.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2931.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2932.     Add INDIRIZZO,Len(DATO$)
  2933.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2934.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2935.     Add INDIRIZZO,Len(DATO$)
  2936.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2937.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2938.     Add INDIRIZZO,Len(DATO$)
  2939.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2940.     DATO$="Luogo a Ovest:"+Chr$(10)
  2941.     Add INDIRIZZO,Len(DATO$)
  2942.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2943.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2944.     Add INDIRIZZO,Len(DATO$)
  2945.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2946.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2947.     Add INDIRIZZO,Len(DATO$)
  2948.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2949.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2950.     Add INDIRIZZO,Len(DATO$)
  2951.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2952.     DATO$="Luogo Sopra:"+Chr$(10)
  2953.     Add INDIRIZZO,Len(DATO$)
  2954.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2955.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2956.     Add INDIRIZZO,Len(DATO$)
  2957.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2958.     DATO$="Luogo Sotto:"+Chr$(10)
  2959.     Add INDIRIZZO,Len(DATO$)
  2960.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2961.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2962.     Add INDIRIZZO,Len(DATO$)
  2963.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2964.     DATO$="Soldi:"+Chr$(10)
  2965.     Add INDIRIZZO,Len(DATO$)
  2966.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2967.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2968.     Add INDIRIZZO,Len(DATO$)
  2969.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2970.     DATO$="Descrizione:"+Chr$(10)
  2971.     Add INDIRIZZO,Len(DATO$)
  2972.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2973.     DATO$=DESCRIZIONES$(B,A)+"|"
  2974.     Add INDIRIZZO,Len(DATO$)
  2975.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2976.    Next B
  2977.   Next A
  2978.  End If 
  2979.  DATO$="Numero dei luoghi:"+Chr$(10)
  2980.  Add INDIRIZZO,Len(DATO$)
  2981.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2982.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2983.  Add INDIRIZZO,Len(DATO$)
  2984.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2985.  For A=0 To NUMEROL
  2986.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2987.   Add INDIRIZZO,Len(DATO$)
  2988.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2989.   DATO$="Nome:"+Chr$(10)
  2990.   Add INDIRIZZO,Len(DATO$)
  2991.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2992.   DATO$=NOMEL$(A)+Chr$(10)
  2993.   Add INDIRIZZO,Len(DATO$)
  2994.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2995.   DATO$="Luogo a Nord:"+Chr$(10)
  2996.   Add INDIRIZZO,Len(DATO$)
  2997.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2998.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2999.   Add INDIRIZZO,Len(DATO$)
  3000.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3001.   DATO$="Luogo a NordEst:"+Chr$(10)
  3002.   Add INDIRIZZO,Len(DATO$)
  3003.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3004.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  3005.   Add INDIRIZZO,Len(DATO$)
  3006.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3007.   DATO$="Luogo a Est:"+Chr$(10)
  3008.   Add INDIRIZZO,Len(DATO$)
  3009.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3010.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  3011.   Add INDIRIZZO,Len(DATO$)
  3012.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3013.   DATO$="Luogo a SudEst:"+Chr$(10)
  3014.   Add INDIRIZZO,Len(DATO$)
  3015.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3016.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  3017.   Add INDIRIZZO,Len(DATO$)
  3018.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3019.   DATO$="Luogo a Sud:"+Chr$(10)
  3020.   Add INDIRIZZO,Len(DATO$)
  3021.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3022.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  3023.   Add INDIRIZZO,Len(DATO$)
  3024.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3025.   DATO$="Luogo a SudOvest:"+Chr$(10)
  3026.   Add INDIRIZZO,Len(DATO$)
  3027.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3028.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  3029.   Add INDIRIZZO,Len(DATO$)
  3030.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3031.   DATO$="Luogo a Ovest:"+Chr$(10)
  3032.   Add INDIRIZZO,Len(DATO$)
  3033.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3034.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  3035.   Add INDIRIZZO,Len(DATO$)
  3036.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3037.   DATO$="Luogo a NordOvest:"+Chr$(10)
  3038.   Add INDIRIZZO,Len(DATO$)
  3039.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3040.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  3041.   Add INDIRIZZO,Len(DATO$)
  3042.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3043.   DATO$="Luogo Sopra:"+Chr$(10)
  3044.   Add INDIRIZZO,Len(DATO$)
  3045.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3046.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  3047.   Add INDIRIZZO,Len(DATO$)
  3048.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3049.   DATO$="Luogo Sotto:"+Chr$(10)
  3050.   Add INDIRIZZO,Len(DATO$)
  3051.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3052.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  3053.   Add INDIRIZZO,Len(DATO$)
  3054.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3055.   DATO$="Soldi:"+Chr$(10)
  3056.   Add INDIRIZZO,Len(DATO$)
  3057.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3058.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  3059.   Add INDIRIZZO,Len(DATO$)
  3060.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3061.   DATO$="Regione:"+Chr$(10)
  3062.   Add INDIRIZZO,Len(DATO$)
  3063.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3064.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  3065.   Add INDIRIZZO,Len(DATO$)
  3066.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3067.   DATO$="Tipo di luogo:"+Chr$(10)
  3068.   Add INDIRIZZO,Len(DATO$)
  3069.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3070.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  3071.   Add INDIRIZZO,Len(DATO$)
  3072.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3073.   DATO$="Descrizione:"+Chr$(10)
  3074.   Add INDIRIZZO,Len(DATO$)
  3075.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3076.   DATO$=DESCRIZIONEL$(A)+"|"
  3077.   Add INDIRIZZO,Len(DATO$)
  3078.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3079.  Next A
  3080.  DATO$="Numero degli oggetti:"+Chr$(10)
  3081.  Add INDIRIZZO,Len(DATO$)
  3082.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3083.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  3084.  Add INDIRIZZO,Len(DATO$)
  3085.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3086.  For A=0 To NUMEROO
  3087.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  3088.   Add INDIRIZZO,Len(DATO$)
  3089.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3090.   DATO$="Categoria:"+Chr$(10)
  3091.   Add INDIRIZZO,Len(DATO$)
  3092.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3093.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  3094.   Add INDIRIZZO,Len(DATO$)
  3095.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3096.   DATO$="Posizione:"+Chr$(10)
  3097.   Add INDIRIZZO,Len(DATO$)
  3098.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3099.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  3100.   Add INDIRIZZO,Len(DATO$)
  3101.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3102.   DATO$="Tipo:"+Chr$(10)
  3103.   Add INDIRIZZO,Len(DATO$)
  3104.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3105.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  3106.   Add INDIRIZZO,Len(DATO$)
  3107.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3108.  Next A
  3109.  DATO$="Numero dei personaggi:"+Chr$(10)
  3110.  Add INDIRIZZO,Len(DATO$)
  3111.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3112.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  3113.  Add INDIRIZZO,Len(DATO$)
  3114.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3115.  For A=0 To NUMEROP
  3116.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  3117.   Add INDIRIZZO,Len(DATO$)
  3118.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3119.   DATO$="Nome:"+Chr$(10)
  3120.   Add INDIRIZZO,Len(DATO$)
  3121.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3122.   DATO$=NOMEP$(A)+Chr$(10)
  3123.   Add INDIRIZZO,Len(DATO$)
  3124.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3125.   DATO$="Posizione:"+Chr$(10)
  3126.   Add INDIRIZZO,Len(DATO$)
  3127.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3128.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  3129.   Add INDIRIZZO,Len(DATO$)
  3130.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3131.   DATO$="Costituzione:"+Chr$(10)
  3132.   Add INDIRIZZO,Len(DATO$)
  3133.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3134.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  3135.   Add INDIRIZZO,Len(DATO$)
  3136.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3137.   DATO$="Destrezza:"+Chr$(10)
  3138.   Add INDIRIZZO,Len(DATO$)
  3139.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3140.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  3141.   Add INDIRIZZO,Len(DATO$)
  3142.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3143.   DATO$="Forza:"+Chr$(10)
  3144.   Add INDIRIZZO,Len(DATO$)
  3145.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3146.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  3147.   Add INDIRIZZO,Len(DATO$)
  3148.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3149.   DATO$="Peso:"+Chr$(10)
  3150.   Add INDIRIZZO,Len(DATO$)
  3151.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3152.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  3153.   Add INDIRIZZO,Len(DATO$)
  3154.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3155.   DATO$="Peso netto:"+Chr$(10)
  3156.   Add INDIRIZZO,Len(DATO$)
  3157.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3158.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  3159.   Add INDIRIZZO,Len(DATO$)
  3160.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3161.   DATO$="Resistenza:"+Chr$(10)
  3162.   Add INDIRIZZO,Len(DATO$)
  3163.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3164.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  3165.   Add INDIRIZZO,Len(DATO$)
  3166.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3167.   DATO$="Soldi:"+Chr$(10)
  3168.   Add INDIRIZZO,Len(DATO$)
  3169.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3170.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  3171.   Add INDIRIZZO,Len(DATO$)
  3172.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3173.   DATO$="Tipo:"+Chr$(10)
  3174.   Add INDIRIZZO,Len(DATO$)
  3175.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3176.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  3177.   Add INDIRIZZO,Len(DATO$)
  3178.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3179.   DATO$="Descrizione:"+Chr$(10)
  3180.   Add INDIRIZZO,Len(DATO$)
  3181.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3182.   DATO$=DESCRIZIONEP$(A)+"|"
  3183.   Add INDIRIZZO,Len(DATO$)
  3184.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3185.   DATO$="Inizio sonno:"+Chr$(10)
  3186.   Add INDIRIZZO,Len(DATO$)
  3187.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3188.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  3189.   Add INDIRIZZO,Len(DATO$)
  3190.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3191.   DATO$="Durata sonno:"+Chr$(10)
  3192.   Add INDIRIZZO,Len(DATO$)
  3193.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3194.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  3195.   Add INDIRIZZO,Len(DATO$)
  3196.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3197.   DATO$="Direzione presa:"+Chr$(10)
  3198.   Add INDIRIZZO,Len(DATO$)
  3199.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3200.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  3201.   Add INDIRIZZO,Len(DATO$)
  3202.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3203.   DATO$="Luogo di destinazione:"+Chr$(10)
  3204.   Add INDIRIZZO,Len(DATO$)
  3205.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3206.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  3207.   Add INDIRIZZO,Len(DATO$)
  3208.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3209.   DATO$="Tempo di attraversamento:"+Chr$(10)
  3210.   Add INDIRIZZO,Len(DATO$)
  3211.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3212.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  3213.   Add INDIRIZZO,Len(DATO$)
  3214.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3215.   DATO$="Soldi ricevuti:"+Chr$(10)
  3216.   Add INDIRIZZO,Len(DATO$)
  3217.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3218.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  3219.   Add INDIRIZZO,Len(DATO$)
  3220.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3221.   For B=0 To 7
  3222.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  3223.    Add INDIRIZZO,Len(DATO$)
  3224.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3225.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  3226.    Add INDIRIZZO,Len(DATO$)
  3227.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3228.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  3229.    Add INDIRIZZO,Len(DATO$)
  3230.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3231.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  3232.    Add INDIRIZZO,Len(DATO$)
  3233.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3234.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  3235.    Add INDIRIZZO,Len(DATO$)
  3236.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3237.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  3238.    Add INDIRIZZO,Len(DATO$)
  3239.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3240.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  3241.    Add INDIRIZZO,Len(DATO$)
  3242.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3243.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  3244.    Add INDIRIZZO,Len(DATO$)
  3245.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3246.   Next B
  3247.   DATO$="Posizione azione:"+Chr$(10)
  3248.   Add INDIRIZZO,Len(DATO$)
  3249.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3250.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  3251.   Add INDIRIZZO,Len(DATO$)
  3252.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3253.  Next A
  3254.  DATO$="Numero delle regioni:"+Chr$(10)
  3255.  Add INDIRIZZO,Len(DATO$)
  3256.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3257.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  3258.  Add INDIRIZZO,Len(DATO$)
  3259.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3260.  For A=0 To NUMEROR
  3261.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  3262.   Add INDIRIZZO,Len(DATO$)
  3263.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3264.   DATO$="Nome:"+Chr$(10)
  3265.   Add INDIRIZZO,Len(DATO$)
  3266.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3267.   DATO$=NOMER$(A)+Chr$(10)
  3268.   Add INDIRIZZO,Len(DATO$)
  3269.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3270.  Next A
  3271.  DATO$="Giornata:"+Chr$(10)
  3272.  Add INDIRIZZO,Len(DATO$)
  3273.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3274.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  3275.  Add INDIRIZZO,Len(DATO$)
  3276.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3277.  DATO$="Tempo trascorso:"+Chr$(10)
  3278.  Add INDIRIZZO,Len(DATO$)
  3279.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3280.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  3281.  Add INDIRIZZO,Len(DATO$)
  3282.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3283.  MEMORIA=Max(Chip Free,Fast Free)
  3284.  If INDIRIZZO>MEMORIA
  3285.   Proc TIC["Mancano"+Str$(INDIRIZZO-1-MEMORIA)+" Byte",ULTIMALINEA]
  3286.   Proc _ASPETTA
  3287.   SENZAMEMORIA=True
  3288.  Else 
  3289.   LUNGHEZZABANCO=INDIRIZZO
  3290.   SENZAMEMORIA=False
  3291.  End If 
  3292. End If 
  3293. End Proc
  3294. Procedure D0RMI
  3295. COMPIUTAAZIONE=Rnd(120)+420
  3296. Bset 2,TIPOP(0)
  3297. Print At(0,ULTIMALINEA);"Hai deciso di dormire";
  3298. Proc _ASPETTA
  3299. End Proc
  3300. Procedure EDIFICI
  3301. If NUMEROE>-1
  3302.  For A=0 To NUMEROE
  3303.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3304.    EDIFICIVISIBILI=True
  3305.   End If 
  3306.  Next A
  3307. Else 
  3308.  EDIFICIVISIBILI=False
  3309. End If 
  3310. If EDIFICIVISIBILI=True
  3311.  Print "Edifici visibili>"
  3312.  Proc FONDOSCHERMOGIOCO
  3313.  For A=0 To NUMEROE
  3314.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3315.    Print NOMEE$(A)
  3316.   End If 
  3317.  Proc FONDOSCHERMOGIOCO
  3318.  Next A
  3319. Else 
  3320.  Print "Nessun edificio visibile"
  3321. End If 
  3322. End Proc
  3323. Procedure EDIFICIOESTANZA
  3324. E=POSIZIONEP(0)/$10000
  3325. Print "Edificio>";NOMEE$(E)
  3326. S=POSIZIONEP(0) mod $10000
  3327. Print "Stanza>";NOMES$(S,E)
  3328. Print "Direzioni visibili>";
  3329. For A=0 To 9
  3330.  DREZIONE=DREZIONES(A,S,E) mod $10000
  3331.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  3332. Next A
  3333. Print 
  3334. End Proc
  3335. Procedure ESAMINA
  3336. For A=1 To NUMEROP
  3337.  If PERSONAGGIOVISIBILEP(A)=True Then OGGETTIEPERSONAGGIDAESAMINARE=True
  3338.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3339.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3340.  End If 
  3341. Next A
  3342. If TEMP0DIATTRAVERSAMENTOP(0)=0
  3343.  For A=0 To NUMEROO
  3344.   If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  3345.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3346.   End If 
  3347.  Next A
  3348. End If 
  3349. For A=0 To NUMEROO
  3350.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False
  3351.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3352.  End If 
  3353. Next A
  3354. If OGGETTIEPERSONAGGIDAESAMINARE=True
  3355.  Cls 
  3356.  Print "Personaggi ed oggetti esaminabili>"
  3357.  For A=1 To NUMEROP
  3358.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  3359.    If RESISTENZAP(A)=0
  3360.     Print "Il cadavere di ",NOMEP$(A)
  3361.    Else 
  3362.     Print NOMEP$(A)
  3363.    End If 
  3364.    Proc FONDOSCHERMOGIOCO
  3365.   End If 
  3366.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3367.   If RESISTENZAP(A)=0
  3368.     Print "Il cadavere di ";NOMEP$(A);" (che stai trasportando)"
  3369.    Else 
  3370.     Print NOMEP$(A);" (che stai trasportando)"
  3371.    End If 
  3372.    Proc FONDOSCHERMOGIOCO
  3373.   End If 
  3374.  Next A
  3375.  For A=0 To NUMEROO
  3376.   If POSIZIONEO(A)=POSIZIONEP(0)
  3377.    If Btst(3,TIPOO(A))=False
  3378.     Print Str$(A+1)-" ";">";
  3379.     If Btst(1,TIPOO(A))=True
  3380.      Print NOMESRO$(CATEGORIAO(A))
  3381.     Else 
  3382.      Print NOMESCO$(CATEGORIAO(A))
  3383.     End If 
  3384.     Proc FONDOSCHERMOGIOCO
  3385.    End If 
  3386.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3387.    Print Str$(A+1)-" ";">";
  3388.    If Btst(1,TIPOO(A))=True
  3389.     Print NOMESRO$(CATEGORIAO(A));
  3390.    Else 
  3391.     Print NOMESCO$(CATEGORIAO(A));
  3392.    End If 
  3393.    Print " (che stai trasportando)"
  3394.    Proc FONDOSCHERMOGIOCO
  3395.   End If 
  3396.  Next A
  3397.  Print At(0,ULTIMALINEA-1);"Chi o che cosa vuoi esaminare ?>" : Locate 0,ULTIMALINEA
  3398.  Input "Numero=Oggetto/Nome=Personaggio>";NUMEROOGGETTOONOMEPERSONAGGIO$;
  3399.  Curs Off 
  3400.  If NUMEROOGGETTOONOMEPERSONAGGIO$<>""
  3401.   If Val(NUMEROOGGETTOONOMEPERSONAGGIO$)=0
  3402.    If NUMEROOGGETTOONOMEPERSONAGGIO$="0"
  3403.     Pop Proc
  3404.    End If 
  3405.    For A=1 To NUMEROP
  3406.     If Lower$(NUMEROOGGETTOONOMEPERSONAGGIO$)=Lower$(NOMEP$(A))
  3407.      Exit 
  3408.     End If 
  3409.    Next A
  3410.    If A=NUMEROP+1
  3411.     Print At(0,ULTIMALINEA);"Non c'� nessun ";NUMEROOGGETTOONOMEPERSONAGGIO$;" da esaminare    ";
  3412.     If _MUSICA=False
  3413.      Bell 1
  3414.     End If 
  3415.     Proc _ASPETTA
  3416.    Else 
  3417.     COMPIUTAAZIONE=1
  3418.     Cls 
  3419.     If RESISTENZAP(A)=0
  3420.      Print NOMEP$(A);" era un";
  3421.      If Btst(1,TIPOP(A))=True
  3422.       Print "a femmina"
  3423.      Else 
  3424.       Print " maschio"
  3425.      End If 
  3426.     Else 
  3427.      Print NOMEP$(A);" ï¿½ un";
  3428.      If Btst(1,TIPOP(A))=True
  3429.       Print "a femmina"
  3430.      Else 
  3431.       Print " maschio"
  3432.      End If 
  3433.      If Btst(2,TIPOP(A))=True
  3434.      Print NOMEP$(A);" sta dormendo"
  3435.      End If 
  3436.      For B=0 To NUMEROO
  3437.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3438.        OGGETTIDAMOSTRARE=True
  3439.       End If 
  3440.      Next B
  3441.      If SOLDIP(A)>0
  3442.       OGGETTIDAMOSTRARE=True
  3443.      End If 
  3444.      If OGGETTIDAMOSTRARE=True
  3445.       For B=0 To NUMEROCO
  3446.        OGGETTIDIA(B)=0
  3447.        RESTIDIA(B)=0
  3448.       Next B
  3449.       For B=0 To NUMEROO
  3450.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3451.         If Btst(1,TIPOO(B))=True
  3452.          Inc RESTIDIA(CATEGORIAO(B))
  3453.         Else 
  3454.          Inc OGGETTIDIA(CATEGORIAO(B))
  3455.         End If 
  3456.        End If 
  3457.       Next B
  3458.       Print "Inventario oggetti di ";NOMEP$(A);">"
  3459.       For B=0 To NUMEROCO
  3460.        If OGGETTIDIA(B)>0
  3461.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3462.         If OGGETTIDIA(B)=1
  3463.          Print NOMESCO$(B)
  3464.         Else 
  3465.          Print NOMEPCO$(B)
  3466.         End If 
  3467.        End If 
  3468.        If RESTIDIA(B)>0
  3469.         Print Str$(RESTIDIA(B))-" ";" ";
  3470.         If RESTIDIA(B)=1
  3471.          Print NOMESRO$(B)
  3472.         Else 
  3473.          Print NOMEPRO$(B)
  3474.         End If 
  3475.        End If 
  3476.       Next B
  3477.       If SOLDIP(B)>0
  3478.        Print Str$(SOLDIP(B))-" ";" ";
  3479.        If SOLDIP(B)=1
  3480.         Print "soldo"
  3481.        Else 
  3482.         Print "soldi"
  3483.        End If 
  3484.        Proc FONDOSCHERMOGIOCO
  3485.       End If 
  3486.       For B=0 To NUMEROO
  3487.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True
  3488.         If Btst(2,TIPOCO(CATEGORIAO(B)))=True and Btst(2,TIPOO(B))=True
  3489.          Print NOMEP$(A);" indossa 1 ";NOMESCO$(CATEGORIAO(B))
  3490.          Exit 
  3491.         End If 
  3492.        End If 
  3493.       Next B
  3494.      Else 
  3495.       Print NOMEP$(A);" non ha nessun oggetto"
  3496.      End If 
  3497.     End If 
  3498.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3499.    End If 
  3500.   Else 
  3501.    OGGETTODAESAMINARE=Val(NUMEROOGGETTOONOMEPERSONAGGIO$)
  3502.    For A=0 To NUMEROO
  3503.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3504.      Exit 
  3505.     End If 
  3506.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3507.      Exit 
  3508.     End If 
  3509.    Next A
  3510.    If A=NUMEROO+1
  3511.     Print At(0,ULTIMALINEA);"Non c'� nessun oggetto col numero";OGGETTODAESAMINARE;
  3512.     If _MUSICA=False
  3513.      Bell 1
  3514.     End If 
  3515.     Proc _ASPETTA
  3516.    Else 
  3517.     COMPIUTAAZIONE=1
  3518.     Cls 
  3519.     Print "Oggetto numero";OGGETTODAESAMINARE;">";
  3520.     If Btst(1,TIPOO(A))=True
  3521.      Print NOMESRO$(CATEGORIAO(A))
  3522.     Else 
  3523.      Print NOMESCO$(CATEGORIAO(A))
  3524.     End If 
  3525.     If Btst(0,TIPOCO(CATEGORIAO(A)))=True
  3526.      Print "� commestibile"
  3527.     End If 
  3528.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  3529.      Print "� un contenitore"
  3530.     End If 
  3531.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  3532.      Print "� difensivo"
  3533.     End If 
  3534.     If Btst(3,TIPOCO(CATEGORIAO(A)))=True
  3535.      Print "� leggibile"
  3536.     End If 
  3537.     If Btst(4,TIPOCO(CATEGORIAO(A)))=True
  3538.      Print "� liquido"
  3539.     Else 
  3540.      Print "� solido"
  3541.     End If 
  3542.     If Btst(5,TIPOCO(CATEGORIAO(A)))=True
  3543.      Print "� magico"
  3544.     End If 
  3545.     If Btst(6,TIPOCO(CATEGORIAO(A)))=True
  3546.      Print "� offensivo"
  3547.     End If 
  3548.     If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  3549.      Print "� residente"
  3550.     End If 
  3551.     If Btst(8,TIPOCO(CATEGORIAO(A)))=True
  3552.      Print "� trasferibile"
  3553.     End If 
  3554.     If Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3555.      Print "� trasparente"
  3556.     End If 
  3557.     If Btst(10,TIPOCO(CATEGORIAO(A)))=True
  3558.      Print "� vincolato"
  3559.     End If 
  3560.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True and Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3561.      For B=0 To NUMEROCO
  3562.       OGGETTIDIA(B)=0
  3563.       RESTIDIA(B)=0
  3564.      Next B
  3565.      For B=0 To NUMEROO
  3566.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and Btst(3,TIPOO(B))=False
  3567.        OGGETTICONTENUTI=True
  3568.        If Btst(1,TIPOO(B))=True
  3569.         Inc RESTIDIA(CATEGORIAO(A))
  3570.        Else 
  3571.         Inc OGGETTIDIA(CATEGORIAO(A))
  3572.        End If 
  3573.       End If 
  3574.      Next B
  3575.      For B=1 To NUMEROP
  3576.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3577.        PERSONAGGICONTENUTI=True
  3578.       End If 
  3579.      Next B
  3580.      If OGGETTICONTENUTI=True
  3581.       Print "oggetti contenuti>"
  3582.       Proc FONDOSCHERMOGIOCO
  3583.       For B=0 To NUMEROCO
  3584.        If OGGETTIDIA(B)>0
  3585.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3586.         If OGGETTIDIA(B)=1
  3587.          Print NOMESCO$(B)
  3588.         Else 
  3589.          Print NOMEPCO$(B)
  3590.         End If 
  3591.         Proc FONDOSCHERMOGIOCO
  3592.        End If 
  3593.        If RESTIDIA(B)>0
  3594.         Print Str$(RESTIDIA(B))-" ";" ";
  3595.         If RESTIDIA(B)=1
  3596.          Print NOMESRO$(B)
  3597.         Else 
  3598.          Print NOMEPRO$(B)
  3599.         End If 
  3600.         Proc FONDOSCHERMOGIOCO
  3601.        End If 
  3602.       Next B
  3603.      Else 
  3604.       Print "non contiene nessun oggetto"
  3605.      End If 
  3606.      If PERSONAGGICONTENUTI=True
  3607.       Print "personaggi contenuti>"
  3608.       Proc FONDOSCHERMOGIOCO
  3609.       For B=1 To NUMEROP
  3610.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3611.         Print NOMEP$(B)
  3612.         Proc FONDOSCHERMOGIOCO
  3613.        End If 
  3614.       Next B
  3615.      Else 
  3616.       Print "non contiene nessun personaggio"
  3617.      End If 
  3618.     End If 
  3619.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3620.    End If 
  3621.   End If 
  3622.  End If 
  3623. Else 
  3624.  Print At(0,ULTIMALINEA);"Non ci sono oggetti e personaggi da esaminare";
  3625.  If _MUSICA=False
  3626.   Bell 1
  3627.  End If 
  3628. Proc _ASPETTA
  3629. End If 
  3630. End Proc
  3631. Procedure FAIDORMIREGLIALTRIPERSONAGGI[P]
  3632. M1NUTI=(TEMP0TRASCORSO+360) mod 1440-COMPIUTAAZIONE
  3633. If INIZIOSONNOP(P)=M1NUTI
  3634.  If PERSONAGGIOVISIBILEP(P)=True
  3635.   If Btst(2,TIPOP(P))=False
  3636.    Print NOMEP$(P);" si ï¿½ addormentat";
  3637.    If Btst(1,TIPOP(P))=True
  3638.     Print "a"
  3639.    Else 
  3640.     Print "o"
  3641.    End If 
  3642.   End If 
  3643.  End If 
  3644.  SONNOP(P)=Rnd(120)+420
  3645.  Bset 2,TIPOP(P)
  3646. End If 
  3647. End Proc
  3648. Procedure FASEDELGIORNO
  3649. Print "Fase del giorno>";
  3650. M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  3651. If M1NUTI<360
  3652.  Print FASEG$(6)
  3653. Else If M1NUTI>359 and M1NUTI<420
  3654.  Print FASEG$(0)
  3655. Else If M1NUTI>419 and M1NUTI<540
  3656.  Print FASEG$(1)
  3657. Else If M1NUTI>539 and M1NUTI<780
  3658.  Print FASEG$(2)
  3659. Else If M1NUTI>779 and M1NUTI<1080
  3660.  Print FASEG$(3)
  3661. Else If M1NUTI>1079 and M1NUTI<1140
  3662.  Print FASEG$(4)
  3663. Else If M1NUTI>1139 and M1NUTI<1260
  3664.  Print FASEG$(5)
  3665. Else 
  3666.  Print FASEG$(6)
  3667. End If 
  3668. End Proc
  3669. Procedure FONDOSCHERMOEDITOR
  3670. If MESSAGGIO1$<>""
  3671.  If Y Curs=ULTIMALINEA-1
  3672.   Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  3673.   Proc TIC["premi un tasto",ULTIMALINEA]
  3674.   Wait Key 
  3675.   Cls 
  3676.  End If 
  3677. Else 
  3678.  If Y Curs=ULTIMALINEA
  3679.   Proc TIC["premi un tasto",ULTIMALINEA]
  3680.   Wait Key 
  3681.   Cls 
  3682.  End If 
  3683. End If 
  3684. End Proc
  3685. Procedure FONDOSCHERMOGIOCO
  3686. If Y Curs=ULTIMALINEA
  3687.  Proc TIC["premi un tasto",ULTIMALINEA]
  3688.  Wait Key 
  3689.  Cls 
  3690. End If 
  3691. End Proc
  3692. Procedure GIOCA
  3693. Fade 5,$66
  3694. Proc MOSTRAMESSAGGIO["Prologo",PROLOGO$]
  3695. Repeat 
  3696.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3697.  If FINEA(7,0)=True
  3698.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3699.   Exit 
  3700.  End If 
  3701.  If COMPIUTAAZIONE>0
  3702.   Add TEMP0TRASCORSO,COMPIUTAAZIONE
  3703.  End If 
  3704.  PERSONAGGIO0SITROVADENTROUNEDIFICIO=POSIZIONEP(0)/$10000
  3705.  If ANEMICI=True and PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3706.   AZIONI=COMPIUTAAZIONE
  3707.   While AZIONI>0
  3708.    NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  3709.    NEMICI=Max(NEMICI,0)
  3710.    If NEMICI=0
  3711.     If Btst(2,TIPOP(0))=True
  3712.      Bclr 2,TIPOP(0) : Add COMPIUTAAZIONE,-AZIONI : AZIONI=1 : INEMICITISVEGLIANO=True
  3713.      Proc NEMICI[0]
  3714.     Else 
  3715.      Proc NEMICI[0]
  3716.     End If 
  3717.    End If 
  3718.    Dec AZIONI
  3719.   Wend 
  3720.  End If 
  3721.  Cls 
  3722.  If RESISTENZAP(0)=0 Then Proc MORTE[0] : Exit 
  3723.  Proc TIC["Premi * per le informazioni",0] : Print 
  3724.  Print "Nome del personaggio>";NOMEP$(0)
  3725.  Proc TEMP0
  3726.  If PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3727.   Proc FASEDELGIORNO
  3728.   Proc CONDIZIONEDELGIORNO
  3729.   If TEMP0DIATTRAVERSAMENTOP(0)=0
  3730.    Proc LUOGO
  3731.    Proc TIPODILUOGO
  3732.    Proc EDIFICI
  3733.    Proc PERSONAGGI
  3734.    Proc OGGETTI[True]
  3735.    Print String$("*",80);
  3736.    Proc AZIONIALTRIPERSONAGGI
  3737.    Proc OGGETTI[False]
  3738.    Bclr 2,TIPOP(0)
  3739.    Memorize X : Memorize Y 
  3740.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3741.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3742.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3743.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3744.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3745.    If SCELTA$="d" : Proc DAI : End If 
  3746.    If SCELTA$="e" : Proc ESAMINA : End If 
  3747.    If SCELTA$="g" : Proc GUARDA : End If 
  3748.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3749.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3750.    If SCELTA$="l" : Proc LASCIA : End If 
  3751.    If SCELTA$="m" : Proc MUOVITI : End If 
  3752.    If SCELTA$="p" : Proc PRENDI : End If 
  3753.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3754.    If SCELTA$="u" : Proc USA : End If 
  3755.    If SCELTA$="z" : Proc D0RMI : End If 
  3756.   Else 
  3757.    Print NOMEP$(0);" sta andando ";
  3758.    If DREZIONEPRESAP(0)>7
  3759.     Print Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3760.    Else 
  3761.     Print "a ";Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3762.    End If 
  3763.    Print " da ";NOMEL$(POSIZIONEP(0))
  3764.    Proc TIPODILUOGO
  3765.    Proc TIPODILUOGODIDESTINAZIONE
  3766.    If TEMP0DIATTRAVERSAMENTOP(0)=1
  3767.     Print "Gli resta 1 minuto";
  3768.    Else 
  3769.     Print "Gli restano";TEMP0DIATTRAVERSAMENTOP(0);" minuti";
  3770.    End If 
  3771.    Print " di cammino..."
  3772.    Proc PERSONAGGI
  3773.    Print String$("*",80);
  3774.    Proc AZIONIALTRIPERSONAGGI
  3775.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3776.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3777.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3778.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3779.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3780.    If SCELTA$="d" : Proc DAI : End If 
  3781.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3782.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3783.    If SCELTA$="l" : Proc LASCIA : End If 
  3784.    If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3785.    If SCELTA$="p" : Proc PRENDI : End If 
  3786.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3787.    If SCELTA$="z" : Proc D0RMI : End If 
  3788.   End If 
  3789.  Else 
  3790.   Proc EDIFICIOESTANZA
  3791.   Proc PERSONAGGI
  3792.   Print String$("*",80);
  3793.   Proc AZIONIALTRIPERSONAGGI
  3794.   Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3795.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3796.   If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3797.   If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3798.   If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3799.   If SCELTA$="d" : Proc DAI : End If 
  3800.   If SCELTA$="i" : Proc INVENTARIO : End If 
  3801.   If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3802.   If SCELTA$="l" : Proc LASCIA : End If 
  3803.   If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3804.   If SCELTA$="p" : Proc PRENDI : End If 
  3805.   If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3806.   If SCELTA$="z" : Proc D0RMI : End If 
  3807.  End If 
  3808.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3809.  If FINEA(7,0)=True
  3810.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3811.   Exit 
  3812.  End If 
  3813. Until SCELTA$="x"
  3814. Fade 5,$60
  3815. End Proc
  3816. Procedure GUARDA
  3817. For A=0 To NUMEROCO
  3818.  If OGGETTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,OGGETTINELLUOGO(A)
  3819.  If RESTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,RESTINELLUOGO(A)
  3820.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,OGGETTIDELPERSONAGGIO0(A)
  3821.  If RESTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,RESTIDELPERSONAGGIO0(A)
  3822. Next A
  3823. If NUMEROE>-1
  3824.  For A=0 To NUMEROE
  3825.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3826.    Inc EDIFICIVISIBILI
  3827.   End If 
  3828.  Next A
  3829. Else 
  3830.  EDIFICIVISIBILI=0
  3831. End If 
  3832. PERSONAGGIVISIBILI=1
  3833. For A=1 To NUMEROP
  3834.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  3835. Next A
  3836. E=POSIZIONEP(0)/$10000
  3837. If E>0
  3838.  If OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3839.   Print At(0,ULTIMALINEA);"Vuoi guardare un oggetto, un personaggio o la stanza (o/p/s) ?>";
  3840.   OGGETTOPERSONAGGIOOSTANZA$=Input$(1)
  3841.   OGGETTOPERSONAGGIOOSTANZA$=Lower$(OGGETTOPERSONAGGIOOSTANZA$)
  3842.   If OGGETTOPERSONAGGIOOSTANZA$="o"
  3843.    Proc GUARDAUNOGGETTO
  3844.   Else If OGGETTOPERSONAGGIOOSTANZA$="p"
  3845.    Proc GUARDAUNPERSONAGGIO
  3846.   Else If OGGETTOPERSONAGGIOOSTANZA$="s"
  3847.    Proc GUARDALASTANZA
  3848.   End If 
  3849.  Else If OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3850.   Print At(0,ULTIMALINEA);"Vuoi guardare un personaggio o la stanza (p/s) ?>";
  3851.   PERSONAGGIOOSTANZA$=Input$(1)
  3852.   PERSONAGGIOOSTANZA$=Lower$(PERSONAGGIOOSTANZA$)
  3853.   If PERSONAGGIOOSTANZA$="p"
  3854.    Proc GUARDAUNPERSONAGGIO
  3855.   Else If PERSONAGGIOOSTANZA$="s"
  3856.    Proc GUARDALASTANZA
  3857.   End If 
  3858.  End If 
  3859. Else 
  3860.  If EDIFICIVISIBILI>0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3861.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo, un oggetto od un personaggio (e/l/o/p) ?>";
  3862.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3863.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOGGETTOOPERSONAGGIO$)
  3864.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3865.    Proc GUARDALEDIFICIO
  3866.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="l"
  3867.    Proc GUARDAILLUOGO
  3868.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="o"
  3869.    Proc GUARDAUNOGGETTO
  3870.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="p"
  3871.    Proc GUARDAUNPERSONAGGIO
  3872.   End If 
  3873.  Else If EDIFICIVISIBILI>0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3874.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo od un personaggio (e/l/p) ?>";
  3875.   EDIFICIOLUOGOOPERSONAGGIO$=Input$(1)
  3876.   EDIFICIOLUOGOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOOPERSONAGGIO$)
  3877.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3878.    Proc GUARDALEDIFICIO
  3879.   Else If EDIFICIOLUOGOOOPERSONAGGIO$="l"
  3880.    Proc GUARDAILLUOGO
  3881.   Else If EDIFICIOLUOGOOPERSONAGGIO$="p"
  3882.    Proc GUARDAUNPERSONAGGIO
  3883.   End If 
  3884.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3885.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo, un oggetto od un personaggio (l/o/p) ?>";
  3886.   LUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3887.   LUOGOOGGETTOOPERSONAGGIO$=Lower$(LUOGOOGGETTOOPERSONAGGIO$)
  3888.   If LUOGOOGGETTOOPERSONAGGIO$="l"
  3889.    Proc GUARDAILLUOGO
  3890.   Else If LUOGOOGGETTOOPERSONAGGIO$="o"
  3891.    Proc GUARDAUNOGGETTO
  3892.   Else If LUOGOOGGETTOOPERSONAGGIO$="p"
  3893.    Proc GUARDAUNPERSONAGGIO
  3894.   End If 
  3895.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3896.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo od un personaggio (l/p) ?>";
  3897.   LUOGOOPERSONAGGIO$=Input$(1)
  3898.   LUOGOOPERSONAGGIO$=Lower$(LUOGOOPERSONAGGIO$)
  3899.   If LUOGOOPERSONAGGIO$="l"
  3900.    Proc GUARDAILLUOGO
  3901.   Else If LUOGOOPERSONAGGIO$="p"
  3902.    Proc GUARDAUNPERSONAGGIO
  3903.   End If 
  3904.  End If 
  3905. End If 
  3906. End Proc
  3907. Procedure GUARDAILLUOGO
  3908. LUOGO$=NOMEL$(POSIZIONEP(0))
  3909. DESCRIZIONE$=DESCRIZIONEL$(POSIZIONEP(0))
  3910. COMPIUTAAZIONE=1
  3911. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il luogo ";LUOGO$;
  3912. Proc _ASPETTA
  3913. Proc MOSTRAMESSAGGIO["Descrizione del luogo "+LUOGO$,DESCRIZIONE$]
  3914. End Proc
  3915. Procedure GUARDALASTANZA
  3916. E=POSIZIONEP(0)/$10000 : S=POSIZIONEP(0) mod $10000
  3917. STANZA$=NOMES$(S,E)
  3918. DESCRIZIONE$=DESCRIZIONES$(S,E)
  3919. COMPIUTAAZIONE=1
  3920. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare la stanza ";STANZA$;
  3921. Proc _ASPETTA
  3922. Proc MOSTRAMESSAGGIO["Descrizione della stanza "+STANZA$,DESCRIZIONE$]
  3923. End Proc
  3924. Procedure GUARDALEDIFICIO
  3925. For A=0 To NUMEROE
  3926.  If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3927.   Inc EDIFICIVISIBILI : E=A
  3928.  End If 
  3929. Next A
  3930. If EDIFICIVISIBILI>1
  3931.  Locate 0,ULTIMALINEA : Input "Quale edificio vuoi guardare ?>";EDIFICIO$;
  3932.  Curs Off 
  3933.  If EDIFICIO$<>""
  3934.   For A=1 To NUMEROE
  3935.    If Lower$(EDIFICIO$)=Lower$(NOMEE$(A)) and POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3936.     EDIFICIO$=NOMEE$(A)
  3937.     DESCRIZIONE$=DESCRIZIONEE$(A)
  3938.     COMPIUTAAZIONE=1
  3939.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$;
  3940.     Proc _ASPETTA
  3941.     Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3942.     Exit 
  3943.    End If 
  3944.   Next A
  3945.   If A=NUMEROP+1
  3946.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";EDIFICIO$;
  3947.    If _MUSICA=False
  3948.     Bell 1
  3949.    End If 
  3950.    Proc _ASPETTA
  3951.   End If 
  3952.  End If 
  3953. Else 
  3954.  EDIFICIO$=NOMEE$(E)
  3955.  DESCRIZIONE$=DESCRIZIONEE$(E)
  3956.  COMPIUTAAZIONE=1
  3957.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$
  3958.  Proc _ASPETTA
  3959.  Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3960. End If 
  3961. End Proc
  3962. Procedure GUARDAUNOGGETTO
  3963. For A=0 To NUMEROO
  3964.  If POSIZIONEO(A)=POSIZIONEP(0)
  3965.   Inc OGGETTIVISIBILI : O=A
  3966.  Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3967.   Inc OGGETTIVISIBILI : O=A
  3968.  End If 
  3969. Next A
  3970. If OGGETTIVISIBILI>1
  3971.  Cls 
  3972.  For A=0 To NUMEROO
  3973.   If POSIZIONEO(A)=POSIZIONEP(0)
  3974.    If Btst(3,TIPOO(A))=False
  3975.     Print Str$(A+1)-" ";">";
  3976.     If Btst(1,TIPOO(A))=True
  3977.      Print NOMESRO$(CATEGORIAO(A))
  3978.     Else 
  3979.      Print NOMESCO$(CATEGORIAO(A))
  3980.     End If 
  3981.     Proc FONDOSCHERMOGIOCO
  3982.    End If 
  3983.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3984.    Print Str$(A+1)-" ";">";
  3985.    If Btst(1,TIPOO(A))=True
  3986.     Print NOMESRO$(CATEGORIAO(A));
  3987.    Else 
  3988.     Print NOMESCO$(CATEGORIAO(A));
  3989.    End If 
  3990.    Print " (che stai trasportando)"
  3991.    Proc FONDOSCHERMOGIOCO
  3992.   End If 
  3993.  Next A
  3994.  Locate 0,ULTIMALINEA
  3995.  Input "Digita il numero dell'oggetto che vuoi guardare>";NUMEROOGGETTO$;
  3996.  Curs Off 
  3997.  If NUMEROOGGETTO$<>""
  3998.   NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  3999.   For A=0 To NUMEROO
  4000.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4001.     Exit 
  4002.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4003.     Exit 
  4004.    End If 
  4005.   Next A
  4006.   If A=NUMEROO+1
  4007.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun oggetto col numero";NUMEROOGGETTO;
  4008.    If _MUSICA=False
  4009.     Bell 1
  4010.    End If 
  4011.    Proc _ASPETTA
  4012.   Else 
  4013.    OGGETTO$=NOMESCO$(CATEGORIAO(A))
  4014.    DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(A))
  4015.    COMPIUTAAZIONE=1
  4016.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4017.    Proc _ASPETTA
  4018.    Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4019.   End If 
  4020.  End If 
  4021. Else 
  4022.  OGGETTO$=NOMESCO$(CATEGORIAO(O))
  4023.  DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(O))
  4024.  COMPIUTAAZIONE=1
  4025.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4026.  Proc _ASPETTA
  4027.  Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4028. End If 
  4029. End Proc
  4030. Procedure GUARDAUNPERSONAGGIO
  4031. PERSONAGGIOVISIBILE=1
  4032. For A=0 To NUMEROP
  4033.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  4034. Next A
  4035. If PERSONAGGIVISIBILI>1
  4036.  Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
  4037.  Curs Off 
  4038.  If PERSONAGGIO$<>""
  4039.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  4040.   If PERSONAGGIO$="me"
  4041.    PERSONAGGIO$=NOMEP$(0)
  4042.    DESCRIZIONE$=DESCRIZIONEP$(0)
  4043.    COMPIUTAAZIONE=1
  4044.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4045.    Proc _ASPETTA
  4046.    Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4047.   Else 
  4048.    For A=1 To NUMEROP
  4049.     If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4050.      PERSONAGGIO$=NOMEP$(A)
  4051.      DESCRIZIONE$=DESCRIZIONEP$(A)
  4052.      COMPIUTAAZIONE=1
  4053.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
  4054.      Proc _ASPETTA
  4055.      Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4056.      Exit 
  4057.     End If 
  4058.    Next A
  4059.    If A=NUMEROP+1
  4060.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4061.     If _MUSICA=False
  4062.      Bell 1
  4063.     End If 
  4064.     Proc _ASPETTA
  4065.    End If 
  4066.   End If 
  4067.  End If 
  4068. Else 
  4069.  PERSONAGGIO$=NOMEP$(0)
  4070.  DESCRIZIONE$=DESCRIZIONEP$(0)
  4071.  COMPIUTAAZIONE=1
  4072.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4073.  Proc _ASPETTA
  4074.  Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4075. End If 
  4076. End Proc
  4077. Procedure INFORMAZIONI
  4078. Cls 
  4079. TIC["Comandi utilizzabili:",0] : Print 
  4080. If TEMP0DIATTRAVERSAMENTOP(0)=0
  4081.  Print "Premi A aspettare cinque minuti di gioco"
  4082.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4083.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4084.  Print "Premi E per esaminare un oggetto od un personaggio"
  4085.  Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
  4086.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4087.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4088.  Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
  4089.  Print "Premi M per muoverti"
  4090.  Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
  4091.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4092.  Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
  4093.  Print "Premi X per smettere di giocare"
  4094.  Print "Premi Z per dormire"
  4095. Else 
  4096.  Print "Premi A per aspettare cinque minuti di gioco"
  4097.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4098.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4099.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4100.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4101.  Print "Premi M per muoverti"
  4102.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4103.  Print "Premi X per smettere di giocare"
  4104.  Print "Premi Z per dormire"
  4105. End If 
  4106. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4107. End Proc
  4108. Procedure INIZIALIZZALEVARIABILI
  4109. MESSAGGIO1$=""
  4110. For A=0 To NUMMASCO
  4111.  NOMESCO$(A)="Oggetto"+Str$(A)
  4112.  NOMEPCO$(A)="Oggetti"+Str$(A)
  4113.  NOMESRO$(A)="Resto oggetto"+Str$(A)
  4114.  NOMEPRO$(A)="Resti oggetti"+Str$(A)
  4115.  PESOCO(A)=5
  4116.  PESORESTOCO(A)=1
  4117.  DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
  4118. Next A
  4119. For A=0 To NUMMASE
  4120.  NOMEE$(A)="Edificio"+Str$(A)
  4121.  DESCRIZIONEE$(A)="Descrizione dell'edificio"+Str$(A)
  4122.  For B=0 To NUMMASS
  4123.   NOMES$(B,A)="Stanza"+Str$(B)
  4124.   DESCRIZIONES$(B,A)="Descrizione della stanza"+Str$(A)
  4125.  Next B
  4126. Next A
  4127. For A=0 To NUMMASL
  4128.  NOMEL$(A)="Luogo"+Str$(A)
  4129.  DESCRIZIONEL$(A)="Descrizione del luogo"+Str$(A)
  4130. Next A
  4131. For A=0 To NUMMASP
  4132.  NOMEP$(A)="Personaggio"+Str$(A)
  4133.  C0STITUZIONEP(A)=1
  4134.  DESTREZZAP(A)=1
  4135.  F0RZAP(A)=1
  4136.  PESOP(A)=1
  4137.  RESISTENZAP(A)=1
  4138.  DESCRIZIONEP$(A)="Descrizione del personaggio"+Str$(A)
  4139. Next A
  4140. For A=0 To NUMMASR
  4141.  NOMER$(A)="Regione"+Str$(A)
  4142. Next A
  4143. End Proc
  4144. Procedure INSERISCIPARAMETRIAZIONE[AZIONE,A,P]
  4145. Cls 
  4146. Print "Nome del personaggio";P;">";NOMEP$(P)
  4147. Locate 0,ULTIMALINEA
  4148. If AZIONE=1
  4149.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4150.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4151. Else If AZIONE=2
  4152.  Input "Quanti oggetti vuole dare ai personaggi?>";PARA;
  4153.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4154.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4155.  PARABAZIONEP(A,P)=Param
  4156. Else If AZIONE=3
  4157.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4158.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4159.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4160.  PARABAZIONEP(AZIONE,P)=Param
  4161. Else If AZIONE=4
  4162.  Input "Quanti personaggi vuole dare ai personaggi (1-65535) ?>";PARA;
  4163.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4164. Else If AZIONE=5
  4165.  Repeat 
  4166.   Input "Quale personaggio vuole dare ai personaggi (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4167.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4168.   Locate 0,ULTIMALINEA
  4169.  Until PARA<>P
  4170. Else If AZIONE=6
  4171.  Repeat 
  4172.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4173.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4174.   Locate 0,ULTIMALINEA : Cline 
  4175.  Until PARA<>P
  4176.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4177.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4178. Else If AZIONE=7
  4179.  Repeat 
  4180.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4181.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4182.   Locate 0,ULTIMALINEA
  4183.  Until PARA<>P
  4184.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4185.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4186.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4187.  PARACAZIONEP(A,P)=Param
  4188. Else If AZIONE=8
  4189.  Repeat 
  4190.   Locate 0,ULTIMALINEA
  4191.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4192.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4193.   Locate 0,ULTIMALINEA : Cline 
  4194.  Until PARA<>P
  4195.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4196.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4197.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4198.  PARACAZIONEP(A,P)=Param
  4199. Else If AZIONE=9
  4200.  Repeat 
  4201.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4202.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4203.   Locate 0,ULTIMALINEA : Cline 
  4204.  Until PARA<>P
  4205.  Input "Quanti personaggi vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4206.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4207. Else If AZIONE=10
  4208.  Repeat 
  4209.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4210.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=PARA
  4211.   Locate 0,ULTIMALINEA : Cline 
  4212.  Until PARA<>P
  4213.  Repeat 
  4214.   Input "Quale personaggio vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4215.   Proc LIMITI[PARB,0,NUMEROP] : PARABAZIONEP(A,P)=Param
  4216.   Locate 0,ULTIMALINEA : Cline 
  4217.  Until PARB<>PARA
  4218. Else If AZIONE=11
  4219.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4220.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4221. Else If AZIONE=12
  4222.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4223.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4224.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4225.  PARABAZIONEP(A,P)=Param
  4226. Else If AZIONE=13
  4227.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4228.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4229.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4230.  PARABAZIONEP(A,P)=Param
  4231. Else If AZIONE=14
  4232.  Input "Quanti personaggi vuole lasciare (1-65535) ?>";PARA;
  4233.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4234. Else If AZIONE=15
  4235.  Repeat 
  4236.   Input "Quale personaggio vuole lasciare (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4237.   Proc LIMITI[PARA,1,65535] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4238.   Locate 0,ULTIMALINEA : Cline 
  4239.  Until PARA<>P
  4240. Else If AZIONE=17
  4241.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4242.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4243. Else If AZIONE=18
  4244.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4245.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4246.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4247.  PARABAZIONEP(A,P)=Param
  4248. Else If AZIONE=19
  4249.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4250.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4251.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4252.  PARABAZIONEP(A,P)=Param
  4253. Else If AZIONE=20
  4254.  Input "Quanti personaggi vuole prendere (1-65535) ?>";PARA;
  4255.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4256. Else If AZIONE=21
  4257.  Repeat 
  4258.   Input "Quale personaggio vuole prendere (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4259.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4260.   Locate 0,ULTIMALINEA : Cline 
  4261.  Until PARA<>P
  4262. Else If AZIONE=23
  4263.  Repeat 
  4264.   Input "Quale personaggio vuole seguire (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4265.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4266.   Locate 0,ULTIMALINEA : Cline 
  4267.  Until PARA<>P
  4268. Else If AZIONE=24
  4269.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4270.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4271. Else If AZIONE=25
  4272.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4273.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4274.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4275.  PARABAZIONEP(A,P)=Param
  4276. Else If AZIONE=26
  4277.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4278.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4279.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4280.  PARABAZIONEP(A,P)=Param
  4281. Else If AZIONE=27
  4282.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARA;
  4283.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4284. Else If AZIONE=28
  4285.  Repeat 
  4286.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4287.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4288.   Locate 0,ULTIMALINEA : Cline 
  4289.  Until PARA<>P
  4290. Else If AZIONE=29
  4291.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4292.  PARAAAZIONEP(A,P)=Param
  4293.  Locate 0,ULTIMALINEA : Cline 
  4294.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4295.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4296. Else If AZIONE=30
  4297.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4298.  PARAAAZIONEP(A,P)=Param
  4299.  Locate 0,ULTIMALINEA : Cline 
  4300.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4301.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4302.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4303.  PARACAZIONEP(A,P)=Param
  4304. Else If AZIONE=31
  4305.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4306.  PARAAAZIONEP(A,P)=Param
  4307.  Locate 0,ULTIMALINEA : Cline 
  4308.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4309.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4310.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4311.  PARACAZIONEP(A,P)=Param
  4312. Else If AZIONE=32
  4313.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4314.  PARAAAZIONEP(A,P)=Param
  4315.  Locate 0,ULTIMALINEA : Cline 
  4316.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4317.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4318. Else If AZIONE=33
  4319.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4320.  PARAAAZIONEP(A,P)=Param
  4321.  Locate 0,ULTIMALINEA : Cline 
  4322.  Repeat 
  4323.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4324.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4325.   Locate 0,ULTIMALINEA : Cline 
  4326.  Until PARB<>P
  4327. Else If AZIONE=34
  4328.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4329.  PARAAAZIONEP(A,P)=Param
  4330.  Cls 
  4331.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4332.  Locate 0,ULTIMALINEA : Cline 
  4333.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4334.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4335. Else If AZIONE=35
  4336.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4337.  PARAAAZIONEP(A,P)=Param
  4338.  Cls 
  4339.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4340.  Locate 0,ULTIMALINEA : Cline 
  4341.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4342.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4343.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4344.  PARACAZIONEP(A,P)=Param
  4345. Else If AZIONE=36
  4346.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4347.  PARAAAZIONEP(A,P)=Param
  4348.  Cls 
  4349.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4350.  Locate 0,ULTIMALINEA : Cline 
  4351.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4352.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4353.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4354.  PARACAZIONEP(A,P)=Param
  4355. Else If AZIONE=37
  4356.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4357.  PARAAAZIONEP(A,P)=Param
  4358.  Cls 
  4359.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4360.  Locate 0,ULTIMALINEA : Cline 
  4361.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4362.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4363. Else If AZIONE=38
  4364.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4365.  PARAAAZIONEP(AZIONE,P)=Param
  4366.  Cls 
  4367.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4368.  Locate 0,ULTIMALINEA : Cline 
  4369.  Repeat 
  4370.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4371.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4372.   Locate 0,ULTIMALINEA : Cline 
  4373.  Until PARB<>P
  4374. Else If AZIONE=40
  4375.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4376.  PARAAAZIONEP(A,P)=Param
  4377. Else If AZIONE=41
  4378.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4379.  PARAAAZIONEP(A,P)=Param
  4380. End If 
  4381. End Proc
  4382. Procedure INVENTARIO
  4383. Cls 
  4384. Print "Inventario degli oggetti e dei personaggi trasportati da ";NOMEP$(0);">"
  4385. For A=0 To NUMEROO
  4386.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4387.   OGGETTIPRESENTI=True
  4388.  End If 
  4389. Next A
  4390. If SOLDIP(0)>0 Then OGGETTIPRESENTI=True
  4391. If OGGETTIPRESENTI=True
  4392.  For A=0 To NUMEROCO
  4393.   If OGGETTIDELPERSONAGGIO0(A)>0
  4394.    Print Str$(OGGETTIDELPERSONAGGIO0(A))-" ";" ";
  4395.    If OGGETTIDELPERSONAGGIO0(A)=1
  4396.     Print NOMESCO$(A)
  4397.    Else 
  4398.     Print NOMEPCO$(A)
  4399.    End If 
  4400.    Proc FONDOSCHERMOGIOCO
  4401.   End If 
  4402.   If RESTIDELPERSONAGGIO0(A)>0
  4403.    Print Str$(RESTIDELPERSONAGGIO0(A))-" ";" ";
  4404.    If RESTIDELPERSONAGGIO0(A)=1
  4405.     Print NOMESRO$(A)
  4406.    Else 
  4407.     Print NOMEPRO$(A)
  4408.    End If 
  4409.    Proc FONDOSCHERMOGIOCO
  4410.   End If 
  4411.  Next A
  4412.  If SOLDIP(0)>0
  4413.   Print Str$(SOLDIP(0))-" ";" ";
  4414.   If SOLDIP(0)=1
  4415.    Print "soldo"
  4416.   Else 
  4417.    Print "soldi"
  4418.   End If 
  4419.   Proc FONDOSCHERMOGIOCO
  4420.  End If 
  4421. Else 
  4422.  Print "Nessun oggetto trasportato"
  4423. End If 
  4424. For A=1 To NUMEROP
  4425.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True Then PERSONAGGIPRESENTI=True
  4426. Next A
  4427. If PERSONAGGIPRESENTI=True
  4428.  Print "Personaggi trasportati da ";NOMEP$(0);">"
  4429.  For A=1 To NUMEROP
  4430.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4431.    Print NOMEP$(A)
  4432.   End If 
  4433.   Proc FONDOSCHERMOGIOCO
  4434.  Next A
  4435. Else 
  4436.  Print "Nessun personaggio trasportato"
  4437. End If 
  4438. If OGGETTIPRESENTI=True or PERSONAGGIPRESENTI=True
  4439.  Print "Peso totale degli oggetti e dei personaggi trasportati>";
  4440.  If PESONETTOP(0)>999
  4441.   PESOOEPDELP0=PESONETTOP(0)/1000
  4442.   Print Str$(PESOOEPDELP0)-" ";" ";
  4443.   If PESOOEPDELP0=1
  4444.    Print "chilo";
  4445.   Else 
  4446.    Print "chili";
  4447.   End If 
  4448.   PESOOEPDELP0=PESONETTOP(0) mod 1000
  4449.   If PESOOEPDELP0>0
  4450.    Print " e";PESOOEPDELP0;" ";
  4451.    If PESOOEPDELP0=1
  4452.     Print "grammo"
  4453.    Else 
  4454.     Print "grammi"
  4455.    End If 
  4456.   Else 
  4457.    Print 
  4458.   End If 
  4459.  Else 
  4460.   PESOOEPDELP0=PESONETTOP(0)
  4461.   Print Str$(PESOOEPDELP0)-" ";" ";
  4462.   If PESOOEPDELP0=1
  4463.    Print "grammo"
  4464.   Else 
  4465.    Print "grammi"
  4466.   End If 
  4467.  End If 
  4468. End If 
  4469. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4470. End Proc
  4471. Procedure LASCIA
  4472. If TEMP0DIATTRAVERSAMENTOP(0)>0
  4473.  For A=1 To NUMEROP
  4474.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4475.    Inc PERSONAGGI
  4476.   End If 
  4477.  Next A
  4478.  If PERSONAGGI>0
  4479.   Proc LASCIAUNPERSONAGGIO
  4480.  Else 
  4481.   Print At(0,ULTIMALINEA);"Non hai personaggi da lasciare";
  4482.   If _MUSICA=False
  4483.    Bell 1
  4484.   End If 
  4485.   Proc _ASPETTA
  4486.   Pop Proc
  4487.  End If 
  4488. Else 
  4489.  For A=1 To NUMEROP
  4490.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4491.    Inc PERSONAGGI
  4492.   End If 
  4493.  Next A
  4494. End If 
  4495. For A=0 To NUMEROCO
  4496.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4497.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4498. Next A
  4499. If SOLDIP(0)>0 Then SOLDI=True
  4500. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  4501.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  4502.  OGGETTOOPERSONAGGIO$=Input$(1)
  4503.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4504.  If OGGETTOOPERSONAGGIO$="o"
  4505.   Proc LASCIAUNOGGETTO
  4506.  Else If OGGETTOOPERSONAGGIO$="p"
  4507.   Proc LASCIAUNPERSONAGGIO
  4508.  Else If OGGETTOOPERSONAGGIO$="s"
  4509.   Proc LASCIADEISOLDI
  4510.  End If 
  4511. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  4512.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto o dei soldi (o/s) ?>";
  4513.  OGGETTOOSOLDI$=Input$(1)
  4514.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  4515.  If OGGETTOOSOLDI$="o"
  4516.   Proc LASCIAUNOGGETTO
  4517.  Else If OGGETTOOSOLDI$="s"
  4518.   Proc LASCIADEISOLDI
  4519.  End If 
  4520. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  4521.  Print At(0,ULTIMALINEA);"Vuoi lasciare un personaggio o dei soldi (p/s) ?>";
  4522.  PERSONAGGIOOSOLDI$=Input$(1)
  4523.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  4524.  If PERSONAGGIOOSOLDI$="p"
  4525.   Proc LASCIAUNPERSONAGGIO
  4526.  Else If PERSONAGGIOOSOLDI$="s"
  4527.   Proc LASCIADEISOLDI
  4528.  End If 
  4529. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  4530.  Proc LASCIADEISOLDI
  4531. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  4532.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto od un personaggio (o/p) ?>";
  4533.  OGGETTOOPERSONAGGIO$=Input$(1)
  4534.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4535.  If OGGETTOOPERSONAGGIO$="o"
  4536.   Proc LASCIAUNOGGETTO
  4537.  Else If OGGETTOOPERSONAGGIO$="p"
  4538.   Proc LASCIAUNPERSONAGGIO
  4539.  End If 
  4540. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  4541.  Proc LASCIAUNOGGETTO
  4542. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  4543.  Proc LASCIAUNPERSONAGGIO
  4544. Else 
  4545.  Print At(0,ULTIMALINEA);"Non hai oggetti,personaggi o soldi da lasciare";
  4546.  If _MUSICA=False
  4547.   Bell 1
  4548.  End If 
  4549.  Proc _ASPETTA
  4550. End If 
  4551. End Proc
  4552. Procedure LASCIAAO[AZIONE,P]
  4553. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4554. For A=0 To NUMEROO
  4555.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4556.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4557.   B=A
  4558.  End If 
  4559. Next A
  4560. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4561.  Pop Proc
  4562. End If 
  4563. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4564.  A=B
  4565. Else 
  4566.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4567.  B=0
  4568.  For A=0 To NUMEROO
  4569.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4570.    OGGETTODELPERSONAGGIOP(B)=A
  4571.    Inc B
  4572.   End If 
  4573.  Next A
  4574.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4575. End If 
  4576. POSIZIONEO(A)=POSIZIONEP(P)
  4577. If Btst(1,TIPOO(A))=True
  4578.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4579. Else 
  4580.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4581. End If 
  4582. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4583.  For B=0 To NUMEROO
  4584.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4585.    If Btst(1,TIPOO(B))=True
  4586.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4587.    Else 
  4588.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4589.    End If 
  4590.   End If 
  4591.  Next B
  4592.  For B=1 To NUMEROP
  4593.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4594.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4595.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4596.   End If 
  4597.  Next B
  4598. End If 
  4599. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4600.  Print NOMEP$(P);" lascia 1 ";
  4601.  If Btst(1,TIPOO(A))=True
  4602.   Print NOMESRO$(CATEGORIAO(A))
  4603.  Else 
  4604.   Print NOMESCO$(CATEGORIAO(A))
  4605.  End If 
  4606. End If 
  4607. Dec PARAAAZIONEP(AZIONE,P)
  4608. If PARAAAZIONEP(AZIONE,P)=0
  4609.  FINEA(AZIONE,P)=True
  4610. End If 
  4611. End Proc
  4612. Procedure LASCIAAOB[AZIONE,P]
  4613. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4614. For A=0 To NUMEROO
  4615.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4616.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4617.   B=A
  4618.  End If 
  4619. Next A
  4620. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4621.  Pop Proc
  4622. End If 
  4623. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4624.  A=B
  4625. Else 
  4626.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4627.  B=0
  4628.  For A=0 To NUMEROO
  4629.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4630.    OGGETTODELPERSONAGGIOP(B)=A
  4631.    Inc B
  4632.   End If 
  4633.  Next A
  4634.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4635. End If 
  4636. POSIZIONEO(A)=POSIZIONEP(P)
  4637. If Btst(1,TIPOO(A))=True
  4638.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4639. Else 
  4640.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4641. End If 
  4642. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4643.  For B=0 To NUMEROO
  4644.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4645.    If Btst(1,TIPOO(B))=True
  4646.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4647.    Else 
  4648.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4649.    End If 
  4650.   End If 
  4651.  Next B
  4652.  For B=1 To NUMEROP
  4653.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4654.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4655.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4656.   End If 
  4657.  Next B
  4658. End If 
  4659. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4660.  Print NOMEP$(P);" lascia 1 ";
  4661.  If Btst(1,TIPOO(A))=True
  4662.   Print NOMESRO$(CATEGORIAO(A))
  4663.  Else 
  4664.   Print NOMESCO$(CATEGORIAO(A))
  4665.  End If 
  4666. End If 
  4667. Dec PARAAAZIONEP(AZIONE,P)
  4668. If PARAAAZIONEP(AZIONE,P)=0
  4669.  FINEA(AZIONE,P)=True
  4670. End If 
  4671. End Proc
  4672. Procedure LASCIAAOTB[AZIONE,P]
  4673. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4674. For A=0 To NUMEROO
  4675.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4676.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4677.   B=A
  4678.  End If 
  4679. Next A
  4680. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4681.  Pop Proc
  4682. End If 
  4683. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4684.  A=B
  4685. Else 
  4686.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4687.  B=0
  4688.  For A=0 To NUMEROO
  4689.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4690.    OGGETTODELPERSONAGGIOP(B)=A
  4691.    Inc B
  4692.   End If 
  4693.  Next A
  4694.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4695. End If 
  4696. POSIZIONEO(A)=POSIZIONEP(P)
  4697. If Btst(1,TIPOO(A))=True
  4698.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4699. Else 
  4700.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4701. End If 
  4702. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4703.  For B=0 To NUMEROO
  4704.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4705.    If Btst(1,TIPOO(B))=True
  4706.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4707.    Else 
  4708.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4709.    End If 
  4710.   End If 
  4711.  Next B
  4712.  For B=1 To NUMEROP
  4713.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4714.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4715.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4716.   End If 
  4717.  Next B
  4718. End If 
  4719. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4720.  Print NOMEP$(P);" lascia 1 ";
  4721.  If Btst(1,TIPOO(A))=True
  4722.   Print NOMESRO$(CATEGORIAO(A))
  4723.  Else 
  4724.   Print NOMESCO$(CATEGORIAO(A))
  4725.  End If 
  4726. End If 
  4727. Dec PARAAAZIONEP(AZIONE,P)
  4728. If PARAAAZIONEP(AZIONE,P)=0
  4729.  FINEA(AZIONE,P)=True
  4730. End If 
  4731. End Proc
  4732. Procedure LASCIAAP[AZIONE,P]
  4733. For A=1 To NUMEROP
  4734.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4735.   POSIZIONEP(A)=POSIZIONEP(P)
  4736.   TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4737.   Bclr 0,TIPOP(A)
  4738.   Add PESONETTOP(P),-PESOP(A)*1000
  4739.   Add PESONETTOP(P),-PESONETTOP(A)
  4740.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4741.    Print NOMEP$(P);" lascia ";NOMEP$(A)
  4742.   End If 
  4743.   Dec PARABAZIONEP(AZIONE,P)
  4744.   If PARABAZIONEP(AZIONE,P)=0
  4745.    FINEA(AZIONE,P)=True
  4746.   End If 
  4747.   Exit 
  4748.  End If 
  4749. Next A
  4750. End Proc
  4751. Procedure LASCIADEISOLDI
  4752. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi lasciare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDI$;
  4753. Curs Off 
  4754. If SOLDI$<>""
  4755.  SOLDI=Val(SOLDI$)
  4756.  Proc LIMITI[SOLDI,0,SOLDIP(0)] : SOLDI=Param
  4757.  If SOLDI>0
  4758.   Add SOLDIP(0),-SOLDI
  4759.   E=POSIZIONEP(0)/$10000
  4760.   If E>0
  4761.    S=POSIZIONEP(0) mod $10000
  4762.    Add SOLDIS(S,E-1),SOLDI
  4763.   Else 
  4764.    Add SOLDIL(POSIZIONEP(0)),SOLDI
  4765.   End If 
  4766.   Add PESONETTOP(0),-SOLDI*PESOS
  4767.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4768.   Print "Hai deciso di lasciare";SOLDI;
  4769.   If SOLDI=1
  4770.    Print " soldo";
  4771.   Else 
  4772.    Print " soldi";
  4773.   End If 
  4774.   Proc _ASPETTA
  4775.  End If 
  4776. End If 
  4777. End Proc
  4778. Procedure LASCIAOGGETTO[O]
  4779. POSIZIONEO(O)=POSIZIONEP(0)
  4780. If Btst(1,TIPOO(O))=True
  4781.  Dec RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  4782.  Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(O))
  4783. Else 
  4784.  Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  4785.  Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  4786.  Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  4787. End If 
  4788. If Btst(1,TIPOCO(CATEGORIAO(O)))=True
  4789.  For A=0 To NUMEROO
  4790.   If POSIZIONEO(A)=-1-O and Btst(0,TIPOO(A))=False
  4791.    If Btst(1,TIPOO(A))=True
  4792.     Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(A))
  4793.    Else 
  4794.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(A))
  4795.    End If 
  4796.   End If 
  4797.  Next A
  4798.  For A=1 To NUMEROP
  4799.   If POSIZIONEP(A)=-1-O and Btst(0,TIPOP(A))=False
  4800.    Add PESONETTOP(0),-PESOP(A)*1000
  4801.    Add PESONETTOP(0),-PESONETTOP(A)
  4802.   End If 
  4803.  Next A
  4804. End If 
  4805. COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4806. Print "Hai deciso di lasciare 1 ";
  4807. If Btst(1,TIPOO(O))=True
  4808.  Print NOMESRO$(CATEGORIAO(O));
  4809. Else 
  4810.  Print NOMESCO$(CATEGORIAO(O));
  4811. End If 
  4812. Proc _ASPETTA
  4813. End Proc
  4814. Procedure LASCIAPA[AZIONE,P]
  4815. A=PARAAAZIONEP(AZIONE,P)
  4816. If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4817.  POSIZIONEP(A)=POSIZIONEP(P)
  4818.  TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4819.  Bclr 0,TIPOP(A)
  4820.  Add PESONETTOP(P),-PESOP(A)*1000
  4821.  Add PESONETTOP(P),-PESONETTOP(A)
  4822.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4823.   Print NOMEP$(P);" lascia ";NOMEP$(A)
  4824.  End If 
  4825.  FINEA(AZIONE,P)=True
  4826. End If 
  4827. End Proc
  4828. Procedure LASCIAPASSAREILTEMPO
  4829. COMPIUTAAZIONE=5
  4830. Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
  4831. Proc _ASPETTA
  4832. End Proc
  4833. Procedure LASCIAUNOGGETTO
  4834. For A=0 To NUMEROCO
  4835.  If OGGETTIDELPERSONAGGIO0(A)>0
  4836.   Inc CATEGORIEOGGETTI
  4837.  End If 
  4838.  If RESTIDELPERSONAGGIO0(A)>0
  4839.   Inc CATEGORIEOGGETTI
  4840.  End If 
  4841. Next A
  4842. OGGETTODIFENSIVOINDOSSATO=-1
  4843. For A=0 To NUMEROO
  4844. If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4845.  If Btst(2,TIPOO(A))=True
  4846.   OGGETTODIFENSIVOINDOSSATO=A
  4847.  Else 
  4848.   Inc OGGETTIERESTIDIFENSIVINONINDOSSATI
  4849.   If Btst(1,TIPOO(A))=True
  4850.    Inc RESTIDIFENSIVINONINDOSSATI
  4851.   Else 
  4852.    Inc OGGETTIDIFENSIVINONINDOSSATI
  4853.   End If 
  4854.  End If 
  4855. End If 
  4856. Next A
  4857. If CATEGORIEOGGETTI>0
  4858.  If CATEGORIEOGGETTI>1
  4859.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi lasciare ?>";OGGETTO$;
  4860.   Curs Off 
  4861.   If OGGETTO$<>""
  4862.    For A=0 To NUMEROO
  4863.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4864.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  4865.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4866.        If OGGETTODIFENSIVOINDOSSATO>-1
  4867.         If OGGETTIDIFENSIVINONINDOSSATI=0
  4868.          Bclr 2,TIPOO(A)
  4869.          Proc LASCIAOGGETTO[A] : Exit 
  4870.         Else 
  4871.          If A<>OGGETTODIFENSIVOINDOSSATO
  4872.           Proc LASCIAOGGETTO[A] : Exit 
  4873.          Else 
  4874.           If RESTIDIFENSIVINONINDOSSATI>0
  4875.            Bclr 2,TIPOO(A)
  4876.            Proc LASCIAOGGETTO[A] : Exit 
  4877.           End If 
  4878.          End If 
  4879.         End If 
  4880.        Else 
  4881.         Proc LASCIAOGGETTO[A] : Exit 
  4882.        End If 
  4883.       Else 
  4884.        Proc LASCIAOGGETTO[A] : Exit 
  4885.       End If 
  4886.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  4887.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4888.        If OGGETTODIFENSIVOINDOSSATO>-1
  4889.         If RESTIDIFENSIVINONINDOSSATI=0
  4890.          Bclr 2,TIPOO(A)
  4891.          Proc LASCIAOGGETTO[A] : Exit 
  4892.         Else 
  4893.          If A<>OGGETTODIFENSIVOINDOSSATO
  4894.           Proc LASCIAOGGETTO[A] : Exit 
  4895.          Else 
  4896.           If OGGETTIDIFENSIVINONINDOSSATI>0
  4897.            Bclr 2,TIPOO(A)
  4898.            Proc LASCIAOGGETTO[A] : Exit 
  4899.           End If 
  4900.          End If 
  4901.         End If 
  4902.        Else 
  4903.         Proc LASCIAOGGETTO[A] : Exit 
  4904.        End If 
  4905.       Else 
  4906.        Proc LASCIAOGGETTO[A] : Exit 
  4907.       End If 
  4908.      End If 
  4909.     End If 
  4910.    Next A
  4911.    If A=NUMEROO+1
  4912.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  4913.     If _MUSICA=False
  4914.      Bell 1
  4915.     End If 
  4916.     Proc _ASPETTA
  4917.    End If 
  4918.   End If 
  4919.  Else 
  4920.   For A=0 To NUMEROO
  4921.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4922.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4923.      If OGGETTODIFENSIVOINDOSSATO>-1
  4924.       If OGGETTIERESTIDIFENSIVINONINDOSSATI=0
  4925.        Bclr 2,TIPOO(A)
  4926.        Proc LASCIAOGGETTO[A] : Exit 
  4927.       Else 
  4928.        If A<>OGGETTODIFENSIVOINDOSSATO
  4929.         Proc LASCIAOGGETTO[A] : Exit 
  4930.        End If 
  4931.       End If 
  4932.      Else 
  4933.       Proc LASCIAOGGETTO[A] : Exit 
  4934.      End If 
  4935.     Else 
  4936.      Proc LASCIAOGGETTO[A] : Exit 
  4937.     End If 
  4938.    End If 
  4939.   Next A
  4940.  End If 
  4941. End If 
  4942. End Proc
  4943. Procedure LASCIAUNPERSONAGGIO
  4944. For A=1 To NUMEROP
  4945.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4946.   Inc PERSONAGGI
  4947.  End If 
  4948. Next A
  4949. If PERSONAGGI>0
  4950.  If PERSONAGGI>1
  4951.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi lasciare ?>";PERSONAGGIO$;
  4952.   Curs Off 
  4953.   If PERSONAGGIO$<>""
  4954.    For A=0 To NUMEROP
  4955.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4956.      POSIZIONEP(A)=POSIZIONEP(0)
  4957.      TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4958.      DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4959.      Add PESONETTOP(0),-PESOP(A)*1000
  4960.      Add PESONETTOP(0),-PESONETTOP(A)
  4961.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4962.      Print "Hai deciso di lasciare ";NOMEP$(A);
  4963.      Proc _ASPETTA : Exit 
  4964.     End If 
  4965.    Next A
  4966.    If A=NUMEROP+1
  4967.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4968.     If _MUSICA=False
  4969.      Bell 1
  4970.     End If 
  4971.     Proc _ASPETTA
  4972.    End If 
  4973.   End If 
  4974.  Else 
  4975.   For A=0 To NUMEROP
  4976.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4977.     POSIZIONEP(A)=POSIZIONEP(0)
  4978.     TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4979.     DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4980.     Add PESONETTOP(0),-PESOP(A)*1000
  4981.     Add PESONETTOP(0),-PESONETTOP(A)
  4982.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4983.     Print "Hai deciso di lasciare ";NOMEP$(A);
  4984.     Proc _ASPETTA : Exit 
  4985.    End If 
  4986.   Next A
  4987.  End If 
  4988. End If 
  4989. End Proc
  4990. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  4991. '-> Limiti by Stefano Regattin 
  4992. 'i> 19 maggio 1996 
  4993. 'm> 12 giugno 1996 
  4994. '--------------------------------------------------------
  4995. 'La procedura equivale alle seguenti linee di programma: 
  4996. ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  4997. ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  4998. 'Se LIMITEMINIMO ï¿½ maggiore di LIMITEMASSIMO ne scambia i valori 
  4999. '----------------------------------------------------------------  
  5000. If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  5001. NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  5002. End Proc[NUMERO]
  5003. Procedure LUOGO
  5004. Print "Regione>";NOMER$(REGIONEL(POSIZIONEP(0)))
  5005. Print "Luogo>";NOMEL$(POSIZIONEP(0))
  5006. Print "Direzioni visibili>";
  5007. For A=0 To 9
  5008.  DREZIONE=DREZIONEL(A,POSIZIONEP(0)) mod $10000
  5009.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  5010. Next A
  5011. Print 
  5012. End Proc
  5013. Procedure MESSAGGIO[MESSAGGIO$]
  5014. Locate 0,ULTIMALINEA
  5015. If CARATTEREMESSAGGIO=0
  5016. 'Ink 0,1 : Text 0,254,Space$(80) : Ink 1,0 
  5017.  Inverse On : Print Space$(80);
  5018. End If 
  5019. Hscroll 1
  5020. Add CARATTEREMESSAGGIO,1,1 To Len(MESSAGGIO$)
  5021. 'Ink 0,1 
  5022. Inverse On 
  5023. 'Text 631,ULTIMALINEA*8-1+7,Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1)
  5024. Print At(79,ULTIMALINEA);Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1);
  5025. 'Ink 1,0 
  5026. Inverse Off 
  5027. Wait 5
  5028. End Proc
  5029. Procedure M0DCATEGORIADEGLIOGGETTI
  5030. Cls 
  5031. Print "Nome singolare della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5032. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5033. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMESCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5034. Cls 
  5035. Print "Nome plurale della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  5036. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5037. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMEPCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5038. Cls 
  5039. Print "Nome singolare del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESRO$(CATEGORIADEGLIOGGETTI)
  5040. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5041. If NOMERESTODEGLIOGGETTI$<>"" Then NOMESRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5042. Cls 
  5043. Print "Nome plurale del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  5044. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5045. If NOMERESTODEGLIOGGETTI$<>"" Then NOMEPRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5046. Cls 
  5047. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  5048. Print "Peso della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESOOGGETTO)-" ";" ";
  5049. If PESOOGGETTO=1
  5050.  Print "grammo"
  5051. Else 
  5052.  Print "grammi"
  5053. End If 
  5054. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria degli oggetti in grammi>";PESOCATEGORIADEGLIOGGETTI$;
  5055. If PESOCATEGORIADEGLIOGGETTI$<>"" Then PESOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEGLIOGGETTI$)
  5056. Cls 
  5057. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  5058. Print "Peso della categoria dei resti degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESORESTOOGGETTO)-" ";" ";
  5059. If PESORESTOOGGETTO=1
  5060.  Print "grammo"
  5061. Else 
  5062.  Print "grammi"
  5063. End If 
  5064. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria dei resti degli oggetti in grammi>";PESOCATEGORIADEIRESTIDEGLIOGGETTI$;
  5065. If PESOCATEGORIADEIRESTIDEGLIOGGETTI$<>"" Then PESORESTOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEIRESTIDEGLIOGGETTI$)
  5066. Curs Off 
  5067. Cls 
  5068. Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";
  5069. Print NOMESCO$(CATEGORIADEGLIOGGETTI)
  5070. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano commestibili (s/n) ?>";
  5071. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5072. If RISPOSTA$="s"
  5073.  Bset 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5074. Else 
  5075.  Bclr 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5076. End If 
  5077. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano contenitori (s/n) ?>";
  5078. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5079. If RISPOSTA$="s"
  5080.  Bset 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5081. Else 
  5082.  If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True
  5083.   For A=0 To NUMEROO
  5084.    For B=0 To NUMEROO
  5085.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and A<>B
  5086.      POSIZIONEO(B)=POSIZIONEO(A)
  5087.     End If 
  5088.    Next B
  5089.    For B=0 To NUMEROP
  5090.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  5091.      POSIZIONEP(B)=POSIZIONEO(A)
  5092.     End If 
  5093.    Next B
  5094.   Next A
  5095.  End If 
  5096.  Bclr 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5097. End If 
  5098. Locate 0,ULTIMALINEA : Cline 
  5099. Print "Vuoi che gli oggetti siano difensivi (s/n) ?>";
  5100. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5101. If RISPOSTA$="s"
  5102.  Bset 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5103. Else 
  5104.  Bclr 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5105. End If 
  5106. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano leggibili (s/n) ?>";
  5107. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5108. If RISPOSTA$="s"
  5109.  Bset 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5110. Else 
  5111.  Bclr 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5112. End If 
  5113. Locate 0,ULTIMALINEA : Cline 
  5114. Print "Vuoi che gli oggetti siano liquidi o solidi (l/s) ?>";
  5115. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5116. If RISPOSTA$="l"
  5117.  Bset 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5118. Else 
  5119.  Bclr 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5120. End If 
  5121. Locate 0,ULTIMALINEA : Cline 
  5122. Print "Vuoi che gli oggetti siano magici (s/n) ?>";
  5123. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5124. If RISPOSTA$="s"
  5125.  Bset 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5126. Else 
  5127.  Bclr 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5128. End If 
  5129. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano offensivi (s/n) ?>";
  5130. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5131. If RISPOSTA$="s"
  5132.  Bset 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5133. Else 
  5134.  Bclr 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5135. End If 
  5136.  For A=0 To NUMEROO
  5137.   If POSIZIONEO(A)<0
  5138.    NONRESIDENTI=True
  5139.   End If 
  5140.  Next A
  5141. If NONRESIDENTI=True
  5142.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano residenti (s/n) ?>";
  5143.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5144.  If RISPOSTA$="s"
  5145.   Bset 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5146.  Else 
  5147.   Bclr 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5148.  End If 
  5149. End If 
  5150. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano trasferibili (s/n) ?>";
  5151. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5152. If RISPOSTA$="s"
  5153.  Bset 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5154. Else 
  5155.  Bclr 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5156. End If 
  5157. Locate 0,ULTIMALINEA : Cline 
  5158. Print "Vuoi che gli oggetti siano trasparenti (s/n) ?>";
  5159. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5160. If RISPOSTA$="s"
  5161.  Bset 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5162. Else 
  5163.  Bclr 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5164. End If 
  5165. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano vincolati ad un oggetto (s/n) ?>";
  5166. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5167. If RISPOSTA$="s"
  5168.  Repeat 
  5169.   Cls 
  5170.   Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5171.   Print At(0,ULTIMALINEA-1);"Scegli l'oggetto vincolante>";NOMESCO$(CO)
  5172.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto vincolante Spazio conferma",ULTIMALINEA]
  5173.   Repeat 
  5174.    TASTOPREMUTO$=Inkey$
  5175.   Until TASTOPREMUTO$<>""
  5176.   If TASTOPREMUTO$=Cup$ : Add CO,-1,0 To NUMEROCO : End If 
  5177.   If TASTOPREMUTO$=Cdown$ : Add CO,1,0 To NUMEROCO : End If 
  5178.  Until TASTOPREMUTO$=" "
  5179.  PARATIPOCO(CATEGORIADEGLIOGGETTI)=CO
  5180.  Bset 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5181. Else 
  5182.  Bclr 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5183.  Cls 
  5184.  Print "Parametro della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  5185.  Locate 0,ULTIMALINEA : Input "Nuovo parametro della categoria degli oggetti>";PARACATEGORIADEGLIOGGETTI$;
  5186.  If PARACATEGORIADEGLIOGGETTI$<>""
  5187.   PARATIPOCO(CATEGORIADEGLIOGGETTI)=Val(PARACATEGORIADEGLIOGGETTI$)
  5188.  End If 
  5189. End If 
  5190. Curs Off 
  5191. End Proc
  5192. Procedure M0DDESCRIZIONE[DESCRIZIONE$]
  5193. INIZIODESCRIZIONE=1
  5194. FINEDESCRIZIONE=Min(Len(DESCRIZIONE$),32*80-1)
  5195. Curs Off 
  5196. Repeat 
  5197.  Cls 
  5198.  For DESCRIZIONE=INIZIODESCRIZIONE To FINEDESCRIZIONE
  5199.   Print Mid$(DESCRIZIONE$,DESCRIZIONE,1);
  5200.   Exit If FINEDESCRIZIONE-INIZIODESCRIZIONE=32*80-2
  5201.   Exit If DESCRIZIONE=Len(DESCRIZIONE$)
  5202.  Next DESCRIZIONE
  5203.  Wait Vbl 
  5204.  POSIZIONEY=DESCRIZIONE/80
  5205.  Curs On 
  5206.  Repeat 
  5207.   If RICORDA=True
  5208.    DISTANZAY=Y Curs-RICORDAY
  5209.    Add POSIZIONEY,-DISTANZAY
  5210.    Locate RICORDAX,RICORDAY : RICORDA=False
  5211.   End If 
  5212.   BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5213.   BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5214.   Repeat 
  5215.    TASTO$=Inkey$
  5216.    CODICESCANSIONE=Scancode
  5217.   Until TASTO$<>""
  5218.   If Asc(TASTO$)=0
  5219.    If CODICESCANSIONE=70 and Len(BLOCCOSUCCESSIVO$)>0
  5220.     BLOCCOSUCCESSIVO$=Right$(BLOCCOSUCCESSIVO$,Len(BLOCCOSUCCESSIVO$)-1)
  5221.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5222.     RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5223.     INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAY*80,1)
  5224.     FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5225.     Exit 
  5226.    End If 
  5227.   Else 
  5228.    If TASTO$=Chr$(8)
  5229.     BLOCCOPRECEDENTE$=Left$(BLOCCOPRECEDENTE$,Len(BLOCCOPRECEDENTE$)-1)
  5230.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5231.     RICORDAX=X Curs-1 : RICORDAY=Y Curs
  5232.     If RICORDAX=-1
  5233.      RICORDAX=79 : Dec RICORDAY
  5234.      If RICORDAY=-1
  5235.       If POSIZIONEY>0
  5236.        Vscroll 1 : RICORDAX=0 : RICORDAY=0 : Dec POSIZIONEY
  5237.        INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5238.       Else 
  5239.        RICORDAX=0 : RICORDAY=0
  5240.       End If 
  5241.      End If 
  5242.     End If 
  5243.     XG=X Graphic(RICORDAX) : YG=Y Graphic(RICORDAY)
  5244.     Ink 0 : Bar XG,YG To XG+7,YG+7 : Ink 1
  5245.     INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5246.     FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5247.     RICORDA=True
  5248.     Exit 
  5249.    Else If TASTO$=Cup$
  5250.     If Y Curs=0
  5251.      If POSIZIONEY>31
  5252.       Vscroll 1 : Dec POSIZIONEY
  5253.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5254.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5255.       RICORDAX=0 : RICORDAY=0 : RICORDA=True
  5256.       INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5257.       Exit 
  5258.      End If 
  5259.     Else 
  5260.      Cmove ,-1 : Dec POSIZIONEY
  5261.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5262.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5263.     End If 
  5264.    Else If TASTO$=Cdown$
  5265.     If Y Curs=32
  5266.      If Len(BLOCCOSUCCESSIVO$)>79
  5267.       Vscroll 3 : Inc POSIZIONEY
  5268.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5269.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5270.      End If 
  5271.     Else 
  5272.      If Len(BLOCCOSUCCESSIVO$)>79
  5273.       Cmove ,1 : Inc POSIZIONEY
  5274.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5275.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5276.      End If 
  5277.     End If 
  5278.    Else If TASTO$=Cleft$
  5279.     If X Curs=0
  5280.      If Y Curs=0
  5281.       If POSIZIONEY>0
  5282.        Vscroll 1 : Dec POSIZIONEY
  5283.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5284.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5285.       End If 
  5286.      Else 
  5287.       Locate 79, : Cmove ,-1 : Dec POSIZIONEY
  5288.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5289.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5290.      End If 
  5291.     Else 
  5292.      Cmove -1,
  5293.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5294.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5295.     End If 
  5296.    Else If TASTO$=Cright$
  5297.     If X Curs=79
  5298.      If Y Curs=32
  5299.       If Len(BLOCCOSUCCESSIVO$)>0
  5300.        Vscroll 3 : Inc POSIZIONEY
  5301.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5302.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5303.       End If 
  5304.      Else 
  5305.       Locate 0, : Cmove ,1 : Inc POSIZIONEY
  5306.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5307.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5308.      End If 
  5309.     Else 
  5310.      If Len(BLOCCOSUCCESSIVO$)>0
  5311.       Cmove 1,
  5312.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5313.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5314.      End If 
  5315.     End If 
  5316.    Else 
  5317.     CARATTERIVALIDI$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz������!',;.:1234567890 "
  5318.     If Instr(CARATTERIVALIDI$,TASTO$)>0
  5319.      DESCRIZIONE$=BLOCCOPRECEDENTE$+TASTO$+BLOCCOSUCCESSIVO$
  5320.      If Len(BLOCCOSUCCESSIVO$)>0
  5321.       RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5322.       INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5323.       FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5324.       Exit 
  5325.      Else 
  5326.       ULTIMACOLONNA=X Curs
  5327.       Print TASTO$;
  5328.       If ULTIMACOLONNA=79
  5329.        Inc POSIZIONEY
  5330.        If Y Curs=31
  5331.         Vscroll 3
  5332.         RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5333.         INIZIODESCRIZIONE=Max(POSIZIONEY*80-79,1)
  5334.         FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5335.         Exit 
  5336.        End If 
  5337.       End If 
  5338.      End If 
  5339.     End If 
  5340.    End If 
  5341.   End If 
  5342.  Until TASTO$=Chr$(27)
  5343. Until TASTO$=Chr$(27)
  5344. Curs Off 
  5345. End Proc[DESCRIZIONE$]
  5346. Procedure M0DEDIFICIO
  5347. Cls 
  5348. Print "Nome dell'edificio";EDIFICIO;">";NOMEE$(EDIFICIO)
  5349. Locate 0,ULTIMALINEA
  5350. Input "Nuovo nome dell'edificio"+Str$(EDIFICIO)+">";NOMEEDIFICIO$;
  5351. If NOMEEDIFICIO$<>"" Then NOMEE$(EDIFICIO)=NOMEEDIFICIO$
  5352. Cls 
  5353. Print "Posizione dell'edificio";EDIFICIO;">luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  5354. Locate 0,ULTIMALINEA
  5355. Input "Nuova posizione dell'edificio"+Str$(EDIFICIO)+" (0-"+Str$(NUMEROL)-" "+")>";NUOVAPOSIZIONEEDIFICIO$;
  5356. If NUOVAPOSIZIONEEDIFICIO$<>""
  5357.  NUOVAPOSIZIONEEDIFICIO=Val(NUOVAPOSIZIONEEDIFICIO$)
  5358.  Proc LIMITI[NUOVAPOSIZIONEEDIFICIO,0,NUMEROL] : NUOVAPOSIZIONEEDIFICIO=Param
  5359.  POSIZIONEE(EDIFICIO)=NUOVAPOSIZIONEEDIFICIO
  5360. End If 
  5361. Cls 
  5362. Print "Numero delle stanze dell'edificio";EDIFICIO;">";NUMEROS(EDIFICIO)+1
  5363. Locate 0,ULTIMALINEA
  5364. Input "Nuovo numero delle stanze dell'edificio"+Str$(EDIFICIO)+" (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  5365. If NUMEROSTANZE$<>""
  5366.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  5367.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROSTANZE=Param
  5368.  NUMEROS(EDIFICIO)=NUMEROSTANZE
  5369. End If 
  5370. Curs Off 
  5371. End Proc
  5372. Procedure M0DIFICA
  5373. M0DIFICA=True
  5374. Fade 5,$660
  5375. Cls 
  5376. Proc TIC["premi C per modificare una categoria degli oggetti",ULTIMALINEA-12]
  5377. Proc TIC["premi D per modificare una descrizione",ULTIMALINEA-11]
  5378. Proc TIC["premi E per modificare un'edificio",ULTIMALINEA-10]
  5379. Proc TIC["premi F per modificare lo scopo del gioco",ULTIMALINEA-9]
  5380. Proc TIC["premi L per modificare un luogo",ULTIMALINEA-8]
  5381. Proc TIC["premi M per creare una mappa dei luoghi/delle stanze",ULTIMALINEA-7]
  5382. Proc TIC["premi N per modificare un numero",ULTIMALINEA-6]
  5383. Proc TIC["premi O per modificare un oggetto",ULTIMALINEA-5]
  5384. Proc TIC["premi P per modificare un personaggio",ULTIMALINEA-4]
  5385. Proc TIC["premi R per modificare una regione",ULTIMALINEA-3]
  5386. Proc TIC["premi S per modificare una stanza",ULTIMALINEA-2]
  5387. Proc TIC["premi X per attivare/disattivare la musica",ULTIMALINEA-1]
  5388. Proc TIC["premi Z per attivare/disattivare i nemici",ULTIMALINEA]
  5389. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5390. If SCELTA$="c" Then Proc M0DIFICACATEGORIADEGLIOGGETTI
  5391. If SCELTA$="d" Then Proc M0DIFICADESCRIZIONE
  5392. If SCELTA$="e" Then Proc M0DIFICAEDIFICIO
  5393. If SCELTA$="f" Then Proc M0DIFICASCOPODELGIOCO
  5394. If SCELTA$="l" Then Proc M0DIFICALUOGO
  5395. If SCELTA$="m" Then Proc CREAMAPPA
  5396. If SCELTA$="n" Then Proc M0DIFICANUMERO
  5397. If SCELTA$="o" Then Proc M0DIFICAOGGETTO
  5398. If SCELTA$="p" Then Proc M0DIFICAPERSONAGGIO
  5399. If SCELTA$="r" Then Proc M0DIFICAREGIONE
  5400. If SCELTA$="s" Then Proc M0DIFICASTANZA
  5401. If SCELTA$="x"
  5402.  _MUSICA= Not _MUSICA
  5403.  If _MUSICA=True
  5404.   Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  5405.   If FILEREQUESTERMUSICA=True and Param$=""
  5406.    _MUSICA=False
  5407.   End If 
  5408.  Else 
  5409.   Track Loop Of : Track Stop 
  5410.  End If 
  5411. End If 
  5412. If SCELTA$="z" Then ANEMICI= Not ANEMICI
  5413. Fade 5,$60
  5414. M0DIFICA=False
  5415. End Proc
  5416. Procedure M0DIFICACATEGORIADEGLIOGGETTI
  5417. CATEGORIADEGLIOGGETTI=0
  5418. Repeat 
  5419.  Proc MOSTRACATEGORIADEGLIOGGETTI
  5420.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta categoria M modifica Esc esci",ULTIMALINEA]
  5421.  Repeat 
  5422.   TASTOPREMUTO$=Inkey$
  5423.  Until TASTOPREMUTO$<>""
  5424.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5425.  If TASTOPREMUTO$="m" Then Proc M0DCATEGORIADEGLIOGGETTI
  5426.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  5427.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  5428. Until TASTOPREMUTO$=Chr$(27)
  5429. CATEGORIADEGLIOGGETTI=0
  5430. End Proc
  5431. Procedure M0DIFICADESCRIZIONE
  5432. Shared SCELTA$
  5433. Cls 
  5434. Proc TIC["premi A per modificare il prologo",ULTIMALINEA-7]
  5435. Proc TIC["premi C per modificare la descrizione della categoria degli oggetti",ULTIMALINEA-6]
  5436. Proc TIC["premi E per modificare la descrizione dell'edificio",ULTIMALINEA-5]
  5437. Proc TIC["premi L per modificare la descrizione del luogo",ULTIMALINEA-4]
  5438. Proc TIC["premi P per modificare la descrizione del personaggio",ULTIMALINEA-3]
  5439. Proc TIC["premi S per modificare la descrizione della stanza",ULTIMALINEA-2]
  5440. Proc TIC["premi Z per modificare l'epilogo",ULTIMALINEA-1]
  5441. Proc TIC["quando sei nell'editor premi Esc per finire",ULTIMALINEA]
  5442. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5443. If SCELTA$="a" Then DESCRIZIONE$=PROLOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5444. If SCELTA$="c" Then DESCRIZIONE$=DESCRIZIONECO$(CATEGORIADEGLIOGGETTI) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5445. If SCELTA$="e" Then DESCRIZIONE$=DESCRIZIONEE$(EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5446. If SCELTA$="l" Then DESCRIZIONE$=DESCRIZIONEL$(LUOGO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5447. If SCELTA$="p" Then DESCRIZIONE$=DESCRIZIONEP$(PERSONAGGIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5448. If SCELTA$="s" Then DESCRIZIONE$=DESCRIZIONES$(STANZA,EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5449. If SCELTA$="z" Then DESCRIZIONE$=EPILOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5450.  
  5451. If SCELTA$="a" Then PROLOGO$=Param$
  5452. If SCELTA$="c" Then DESCRIZIONECO$(CATEGORIADEGLIOGGETTI)=Param$
  5453. If SCELTA$="e" Then DESCRIZIONEE$(EDIFICIO)=Param$
  5454. If SCELTA$="l" Then DESCRIZIONEL$(LUOGO)=Param$
  5455. If SCELTA$="p" Then DESCRIZIONEP$(PERSONAGGIO)=Param$
  5456. If SCELTA$="s" Then DESCRIZIONES$(STANZA,EDIFICIO)=Param$
  5457. If SCELTA$="z" Then EPILOGO$=Param$
  5458. End Proc
  5459. Procedure M0DIFICAEDIFICIO
  5460. If NUMEROE=-1 Then Pop Proc
  5461. EDIFICIO=0
  5462. Repeat 
  5463.  Proc MOSTRAEDIFICIO
  5464.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta edificio M modifica Esc esci",ULTIMALINEA]
  5465.  Repeat 
  5466.   TASTOPREMUTO$=Inkey$
  5467.  Until TASTOPREMUTO$<>""
  5468.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5469.  If TASTOPREMUTO$="m" Then Proc M0DEDIFICIO
  5470.  If TASTOPREMUTO$=Cup$ Then Add EDIFICIO,-1,0 To NUMEROE
  5471.  If TASTOPREMUTO$=Cdown$ Then Add EDIFICIO,1,0 To NUMEROE
  5472. Until TASTOPREMUTO$=Chr$(27)
  5473. LUOGO=0
  5474. End Proc
  5475. Procedure M0DIFICALUOGO
  5476. LUOGO=0
  5477. Repeat 
  5478.  Proc MOSTRALUOGO
  5479.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta luogo M modifica Esc esci",ULTIMALINEA]
  5480.  Repeat 
  5481.   TASTOPREMUTO$=Inkey$
  5482.  Until TASTOPREMUTO$<>""
  5483.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5484.  If TASTOPREMUTO$="m" Then Proc M0DLUOGO
  5485.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  5486.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  5487. Until TASTOPREMUTO$=Chr$(27)
  5488. LUOGO=0
  5489. End Proc
  5490. Procedure M0DIFICAOGGETTO
  5491. OGGETTO=0
  5492. Repeat 
  5493.  Proc MOSTRAOGGETTO
  5494.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto M modifica Esc esci",ULTIMALINEA]
  5495.  Repeat 
  5496.   TASTOPREMUTO$=Inkey$
  5497.  Until TASTOPREMUTO$<>""
  5498.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5499.  If TASTOPREMUTO$="m" Then Proc M0DOGGETTO
  5500.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  5501.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  5502. Until TASTOPREMUTO$=Chr$(27)
  5503. OGGETTO=0
  5504. End Proc
  5505. Procedure M0DIFICANUMERO
  5506. Cls 
  5507. Proc TIC["premi C per modificare il numero delle categorie degli oggetti",ULTIMALINEA-6]
  5508. Proc TIC["premi E per modificare il numero degli edifici",ULTIMALINEA-5]
  5509. Proc TIC["premi L per modificare il numero dei luoghi",ULTIMALINEA-4]
  5510. Proc TIC["premi O per modificare il numero degli oggetti",ULTIMALINEA-3]
  5511. Proc TIC["premi P per modificare il numero dei personaggi",ULTIMALINEA-2]
  5512. Proc TIC["premi R per modificare il numero delle regioni",ULTIMALINEA-1]
  5513. Proc TIC["premi S per modificare il numero delle stanze",ULTIMALINEA]
  5514. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5515. If SCELTA$="c" Then Proc M0DNUMCO
  5516. If SCELTA$="e" Then Proc M0DNUME
  5517. If SCELTA$="l" Then Proc M0DNUML
  5518. If SCELTA$="o" Then Proc M0DNUMO
  5519. If SCELTA$="p" Then Proc M0DNUMP
  5520. If SCELTA$="r" Then Proc M0DNUMR
  5521. If SCELTA$="s" Then Proc M0DNUMS
  5522. End Proc
  5523. Procedure M0DIFICAPERSONAGGIO
  5524. PERSONAGGIO=0
  5525. Repeat 
  5526.  Proc MOSTRAPERSONAGGIO
  5527.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta personaggio M modifica Esc esci",ULTIMALINEA]
  5528.  Repeat 
  5529.   TASTOPREMUTO$=Inkey$
  5530.  Until TASTOPREMUTO$<>""
  5531.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5532.  If TASTOPREMUTO$="m" Then Proc M0DPERSONAGGIO
  5533.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  5534.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  5535. Until TASTOPREMUTO$=Chr$(27)
  5536. PERSONAGGIO=0
  5537. End Proc
  5538. Procedure M0DIFICAREGIONE
  5539. REGIONE=0
  5540. Repeat 
  5541.  Proc MOSTRAREGIONE
  5542.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta regione M modifica Esc esci",ULTIMALINEA]
  5543.  Repeat 
  5544.   TASTOPREMUTO$=Inkey$
  5545.  Until TASTOPREMUTO$<>""
  5546.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5547.  If TASTOPREMUTO$="m" Then Proc M0DREGIONE
  5548.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  5549.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  5550. Until TASTOPREMUTO$=Chr$(27)
  5551. REGIONE=0
  5552. End Proc
  5553. Procedure M0DIFICASCOPODELGIOCO
  5554. VECCHIOSCOPODELGIOCO=AZIONEP(7,0)
  5555. SCOPODELGIOCO=VECCHIOSCOPODELGIOCO
  5556. SCOPOMODIFICATO=-1
  5557. Repeat 
  5558.  Proc SCOPODELGIOCO[True]
  5559.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta scopo del gioco M modifica Esc esci",ULTIMALINEA]
  5560.  Repeat 
  5561.   TASTOPREMUTO$=Inkey$
  5562.  Until TASTOPREMUTO$<>""
  5563.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5564.  If TASTOPREMUTO$="m" Then Proc SCOPODELGIOCO[SCOPODELGIOCO] : SCOPOMODIFICATO=SCOPODELGIOCO
  5565.  If TASTOPREMUTO$=Cup$ Then Add SCOPODELGIOCO,-1,0 To 18
  5566.  If TASTOPREMUTO$=Cdown$ Then Add SCOPODELGIOCO,1,0 To 18
  5567.  AZIONEP(7,0)=SCOPODELGIOCO
  5568. Until TASTOPREMUTO$=Chr$(27)
  5569. If SCOPOMODIFICATO=-1
  5570.  AZIONEP(7,0)=VECCHIOSCOPODELGIOCO
  5571. Else 
  5572.  AZIONEP(7,0)=SCOPOMODIFICATO
  5573. End If 
  5574. FINEA(7,0)=False
  5575. End Proc
  5576. Procedure M0DIFICASTANZA
  5577. If NUMEROE=-1 Then Pop Proc
  5578. STANZA=0
  5579. Repeat 
  5580.  Proc MOSTRASTANZA
  5581.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta stanza M modifica Esc esci",ULTIMALINEA]
  5582.  Repeat 
  5583.   TASTOPREMUTO$=Inkey$
  5584.  Until TASTOPREMUTO$<>""
  5585.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5586.  If TASTOPREMUTO$="m" Then Proc M0DSTANZA
  5587.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  5588.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  5589. Until TASTOPREMUTO$=Chr$(27)
  5590. STANZA=0
  5591. End Proc
  5592. Procedure M0DLUOGO
  5593. Cls 
  5594. Print "Nome del luogo";LUOGO;">";NOMEL$(LUOGO)
  5595. Locate 0,ULTIMALINEA
  5596. Input "Nuovo nome del luogo"+Str$(LUOGO)+">";NOMELUOGO$;
  5597. If NOMELUOGO$<>"" Then NOMEL$(LUOGO)=NOMELUOGO$
  5598. DREZIONE=DREZIONEL(0,LUOGO)
  5599. Cls 
  5600. Print "Direzione Nord del luogo";LUOGO;">";
  5601. E=DREZIONE/$10000
  5602. If E>0
  5603.  S=DREZIONE mod $10000
  5604.  Print "edificio";E;" stanza";S
  5605. Else 
  5606.  If DREZIONE<$FFFF
  5607.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5608.  Else 
  5609.   Print " nessuno"
  5610.  End If 
  5611. End If 
  5612. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5613. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5614. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5615. If NUMEROLUOGO$<>""
  5616.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5617.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5618.   If NUMEROEDIFICIO$<>""
  5619.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5620.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5621.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5622.    If NUMEROSTANZA$<>""
  5623.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5624.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5625.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5626.    End If 
  5627.   End If 
  5628.  Else 
  5629.   If NUMEROLUOGO$="n"
  5630.    DREZIONE=$FFFF
  5631.   Else 
  5632.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5633.   End If 
  5634.  End If 
  5635.  DREZIONEL(0,LUOGO)=DREZIONE
  5636. End If 
  5637. DREZIONE=DREZIONEL(1,LUOGO)
  5638. Cls 
  5639. Print "Direzione NordEst del luogo";LUOGO;">";
  5640. E=DREZIONE/$10000
  5641. If E>0
  5642.  S=DREZIONE mod $10000
  5643.  Print "edificio";E;" stanza";S
  5644. Else 
  5645.  If DREZIONE<$FFFF
  5646.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5647.  Else 
  5648.   Print " nessuno"
  5649.  End If 
  5650. End If 
  5651. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5652. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5653. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5654. If NUMEROLUOGO$<>""
  5655.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5656.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5657.   If NUMEROEDIFICIO$<>""
  5658.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5659.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5660.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5661.    If NUMEROSTANZA$<>""
  5662.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5663.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5664.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5665.    End If 
  5666.   End If 
  5667.  Else 
  5668.   If NUMEROLUOGO$="n"
  5669.    DREZIONE=$FFFF
  5670.   Else 
  5671.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5672.   End If 
  5673.  End If 
  5674.  DREZIONEL(1,LUOGO)=DREZIONE
  5675. End If 
  5676. DREZIONE=DREZIONEL(2,LUOGO)
  5677. Cls 
  5678. Print "Direzione Est del luogo";LUOGO;">";
  5679. E=DREZIONE/$10000
  5680. If E>0
  5681.  S=DREZIONE mod $10000
  5682.  Print "edificio";E;" stanza";S
  5683. Else 
  5684.  If DREZIONE<$FFFF
  5685.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5686.  Else 
  5687.   Print " nessuno"
  5688.  End If 
  5689. End If 
  5690. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5691. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5692. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5693. If NUMEROLUOGO$<>""
  5694.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5695.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5696.   If NUMEROEDIFICIO$<>""
  5697.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5698.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5699.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5700.    If NUMEROSTANZA$<>""
  5701.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5702.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5703.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5704.    End If 
  5705.   End If 
  5706.  Else 
  5707.   If NUMEROLUOGO$="n"
  5708.    DREZIONE=$FFFF
  5709.   Else 
  5710.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5711.   End If 
  5712.  End If 
  5713.  DREZIONEL(2,LUOGO)=DREZIONE
  5714. End If 
  5715. DREZIONE=DREZIONEL(3,LUOGO)
  5716. Cls 
  5717. Print "Direzione SudEst del luogo";LUOGO;">";
  5718. E=DREZIONE/$10000
  5719. If E>0
  5720.  S=DREZIONE mod $10000
  5721.  Print "edificio";E;" stanza";S
  5722. Else 
  5723.  If DREZIONE<$FFFF
  5724.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5725.  Else 
  5726.   Print " nessuno"
  5727.  End If 
  5728. End If 
  5729. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5730. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5731. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5732. If NUMEROLUOGO$<>""
  5733.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5734.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5735.   If NUMEROEDIFICIO$<>""
  5736.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5737.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5738.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5739.    If NUMEROSTANZA$<>""
  5740.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5741.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5742.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5743.    End If 
  5744.   End If 
  5745.  Else 
  5746.   If NUMEROLUOGO$="n"
  5747.    DREZIONE=$FFFF
  5748.   Else 
  5749.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5750.   End If 
  5751.  End If 
  5752.  DREZIONEL(3,LUOGO)=DREZIONE
  5753. End If 
  5754. DREZIONE=DREZIONEL(4,LUOGO)
  5755. Cls 
  5756. Print "Direzione Sud del luogo";LUOGO;">";
  5757. E=DREZIONE/$10000
  5758. If E>0
  5759.  S=DREZIONE mod $10000
  5760.  Print "edificio";E;" stanza";S
  5761. Else 
  5762.  If DREZIONE<$FFFF
  5763.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5764.  Else 
  5765.   Print " nessuno"
  5766.  End If 
  5767. End If 
  5768. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5769. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5770. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5771. If NUMEROLUOGO$<>""
  5772.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5773.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5774.   If NUMEROEDIFICIO$<>""
  5775.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5776.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5777.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5778.    If NUMEROSTANZA$<>""
  5779.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5780.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5781.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5782.    End If 
  5783.   End If 
  5784.  Else 
  5785.   If NUMEROLUOGO$="n"
  5786.    DREZIONE=$FFFF
  5787.   Else 
  5788.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5789.   End If 
  5790.  End If 
  5791.  DREZIONEL(4,LUOGO)=DREZIONE
  5792. End If 
  5793. DREZIONE=DREZIONEL(5,LUOGO)
  5794. Cls 
  5795. Print "Direzione SudOvest del luogo";LUOGO;">";
  5796. E=DREZIONE/$10000
  5797. If E>0
  5798.  S=DREZIONE mod $10000
  5799.  Print "edificio";E;" stanza";S
  5800. Else 
  5801.  If DREZIONE<$FFFF
  5802.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5803.  Else 
  5804.   Print " nessuno"
  5805.  End If 
  5806. End If 
  5807. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5808. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5809. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5810. If NUMEROLUOGO$<>""
  5811.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5812.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5813.   If NUMEROEDIFICIO$<>""
  5814.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5815.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5816.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5817.    If NUMEROSTANZA$<>""
  5818.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5819.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5820.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5821.    End If 
  5822.   End If 
  5823.  Else 
  5824.   If NUMEROLUOGO$="n"
  5825.    DREZIONE=$FFFF
  5826.   Else 
  5827.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5828.   End If 
  5829.  End If 
  5830.  DREZIONEL(5,LUOGO)=DREZIONE
  5831. End If 
  5832. DREZIONE=DREZIONEL(6,LUOGO)
  5833. Cls 
  5834. Print "Direzione Ovest del luogo";LUOGO;">";
  5835. E=DREZIONE/$10000
  5836. If E>0
  5837.  S=DREZIONE mod $10000
  5838.  Print "edificio";E;" stanza";S
  5839. Else 
  5840.  If DREZIONE<$FFFF
  5841.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5842.  Else 
  5843.   Print " nessuno"
  5844.  End If 
  5845. End If 
  5846. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5847. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5848. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5849. If NUMEROLUOGO$<>""
  5850.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5851.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5852.   If NUMEROEDIFICIO$<>""
  5853.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5854.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5855.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5856.    If NUMEROSTANZA$<>""
  5857.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5858.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5859.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5860.    End If 
  5861.   End If 
  5862.  Else 
  5863.   If NUMEROLUOGO$="n"
  5864.    DREZIONE=$FFFF
  5865.   Else 
  5866.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5867.   End If 
  5868.  End If 
  5869.  DREZIONEL(6,LUOGO)=DREZIONE
  5870. End If 
  5871. DREZIONE=DREZIONEL(7,LUOGO)
  5872. Cls 
  5873. Print "Direzione NordOvest del luogo";LUOGO;">";
  5874. E=DREZIONE/$10000
  5875. If E>0
  5876.  S=DREZIONE mod $10000
  5877.  Print "edificio";E;" stanza";S
  5878. Else 
  5879.  If DREZIONE<$FFFF
  5880.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5881.  Else 
  5882.   Print " nessuno"
  5883.  End If 
  5884. End If 
  5885. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5886. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5887. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5888. If NUMEROLUOGO$<>""
  5889.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5890.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5891.   If NUMEROEDIFICIO$<>""
  5892.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5893.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5894.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5895.    If NUMEROSTANZA$<>""
  5896.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5897.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5898.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5899.    End If 
  5900.   End If 
  5901.  Else 
  5902.   If NUMEROLUOGO$="n"
  5903.    DREZIONE=$FFFF
  5904.   Else 
  5905.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5906.   End If 
  5907.  End If 
  5908.  DREZIONEL(7,LUOGO)=DREZIONE
  5909. End If 
  5910. DREZIONE=DREZIONEL(8,LUOGO)
  5911. Cls 
  5912. Print "Direzione Sopra del luogo";LUOGO;">";
  5913. E=DREZIONE/$10000
  5914. If E>0
  5915.  S=DREZIONE mod $10000
  5916.  Print "edificio";E;" stanza";S
  5917. Else 
  5918.  If DREZIONE<$FFFF
  5919.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5920.  Else 
  5921.   Print " nessuno"
  5922.  End If 
  5923. End If 
  5924. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5925. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5926. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5927. If NUMEROLUOGO$<>""
  5928.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5929.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5930.   If NUMEROEDIFICIO$<>""
  5931.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5932.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5933.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5934.    If NUMEROSTANZA$<>""
  5935.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5936.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5937.     If NUMEROSTANZA=0
  5938.      DREZIONE=NUMEROEDIFICIO*$10000
  5939.     Else 
  5940.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5941.     End If 
  5942.    End If 
  5943.   End If 
  5944.  Else 
  5945.   If NUMEROLUOGO$="n"
  5946.    DREZIONE=$FFFF
  5947.   Else 
  5948.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5949.   End If 
  5950.  End If 
  5951.  DREZIONEL(8,LUOGO)=DREZIONE
  5952. End If 
  5953. DREZIONE=DREZIONEL(9,LUOGO)
  5954. Cls 
  5955. Print "Direzione Sotto del luogo";LUOGO;">luogo";
  5956. E=DREZIONE/$10000
  5957. If E>0
  5958.  S=DREZIONE mod $10000
  5959.  Print "edificio";E;" stanza";S
  5960. Else 
  5961.  If DREZIONE<$FFFF
  5962.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5963.  Else 
  5964.   Print " nessuno"
  5965.  End If 
  5966. End If 
  5967. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5968. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5969. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5970. If NUMEROLUOGO$<>""
  5971.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5972.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5973.   If NUMEROEDIFICIO$<>""
  5974.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5975.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5976.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5977.    If NUMEROSTANZA$<>""
  5978.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5979.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5980.     If NUMEROSTANZA=0
  5981.      DREZIONE=NUMEROEDIFICIO*$10000
  5982.     Else 
  5983.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5984.     End If 
  5985.    End If 
  5986.   End If 
  5987.  Else 
  5988.   If NUMEROLUOGO$="n"
  5989.    DREZIONE=$FFFF
  5990.   Else 
  5991.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5992.   End If 
  5993.  End If 
  5994.  DREZIONEL(9,LUOGO)=DREZIONE
  5995. End If 
  5996. Cls 
  5997. Print "Soldi nel luogo";LUOGO;">";Str$(SOLDIL(LUOGO))-" ";" ";
  5998. If SOLDIL(LUOGO)=1 Then Print "soldo" Else Print "soldi"
  5999. Locate 0,ULTIMALINEA
  6000. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLUOGO$;
  6001. If SOLDINELLUOGO$<>""
  6002.  SOLDINELLUOGO=Val(SOLDINELLUOGO$)
  6003.  Proc LIMITI[SOLDINELLUOGO,0,65535] : SOLDIL(LUOGO)=Param
  6004. End If 
  6005. Curs Off 
  6006. TIPOLUOGO=TIPOL(LUOGO)
  6007. Repeat 
  6008.  Cls 
  6009.  Print "Tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOL(LUOGO))
  6010.  Print At(0,ULTIMALINEA-1);"Nuovo tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOLUOGO)
  6011.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo di luogo Spazio conferma",ULTIMALINEA]
  6012.  Repeat 
  6013.   TASTOPREMUTO$=Inkey$
  6014.  Until TASTOPREMUTO$<>""
  6015.  If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  6016.  If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  6017. Until TASTOPREMUTO$=" "
  6018. TIPOL(LUOGO)=TIPOLUOGO
  6019. End Proc
  6020. Procedure M0DNUMCO
  6021. Cls 
  6022. Print "Numero delle categorie degli oggetti>";Str$(NUMEROCO+1)-" "
  6023. Locate 0,ULTIMALINEA : Input "Nuovo numero delle categorie degli oggetti (1-"+Str$(NUMMASCO+1)-" "+")>";NUMEROCATEGORIEDEGLIOGGETTI$;
  6024. If NUMEROCATEGORIEDEGLIOGGETTI$<>""
  6025.  NUMEROCATEGORIEDEGLIOGGETTI=Val(NUMEROCATEGORIEDEGLIOGGETTI$)
  6026.  Dec NUMEROCATEGORIEDEGLIOGGETTI
  6027.  Proc LIMITI[NUMEROCATEGORIEDEGLIOGGETTI,0,NUMMASCO] : NUMEROCO=Param
  6028. End If 
  6029. Curs Off 
  6030. End Proc
  6031. Procedure M0DNUME
  6032. Cls 
  6033. Print "Numero degli edifici>";Str$(NUMEROE+1)-" "
  6034. Locate 0,ULTIMALINEA : Input "Nuovo numero degli edifici (0-"+Str$(NUMMASE+1)-" "+")>";NUMEROEDIFICI$;
  6035. If NUMEROEDIFICI$<>""
  6036.  NUMEROEDIFICI=Val(NUMEROEDIFICI$) : Dec NUMEROEDIFICI
  6037.  Proc LIMITI[NUMEROEDIFICI,-1,NUMMASE] : NUMEROE=Param
  6038.  If NUMEROE=-1
  6039.   EDIFICIO=NUMEROE
  6040.  End If 
  6041. End If 
  6042. Curs Off 
  6043. End Proc
  6044. Procedure M0DNUML
  6045. Cls 
  6046. Print "Numero dei luoghi>";Str$(NUMEROL+1)-" "
  6047. Locate 0,ULTIMALINEA : Input "Nuovo numero dei luoghi (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROLUOGHI$;
  6048. If NUMEROLUOGHI$<>""
  6049.  NUMEROLUOGHI=Val(NUMEROLUOGHI$) : Dec NUMEROLUOGHI
  6050.  Proc LIMITI[NUMEROLUOGHI,0,NUMMASL] : NUMEROL=Param
  6051. End If 
  6052. Curs Off 
  6053. End Proc
  6054. Procedure M0DNUMO
  6055. Cls 
  6056. Print "Numero degli oggetti>";Str$(NUMEROO+1)-" "
  6057. Locate 0,ULTIMALINEA : Input "Nuovo numero degli oggetti (1-"+Str$(NUMMASO+1)-" "+")>";NUMEROOGGETTI$;
  6058. If NUMEROOGGETTI$<>""
  6059.  NUMEROOGGETTI=Val(NUMEROOGGETTI$) : Dec NUMEROOGGETTI
  6060.  Proc LIMITI[NUMEROOGGETTI,0,NUMMASO] : NUMEROO=Param
  6061. End If 
  6062. Curs Off 
  6063. End Proc
  6064. Procedure M0DNUMP
  6065. Cls 
  6066. Print "Numero dei personaggi>";Str$(NUMEROP+1)-" "
  6067. Locate 0,ULTIMALINEA : Input "Nuovo numero dei personaggi (1-"+Str$(NUMMASP+1)-" "+")>";NUMEROPERSONAGGI$;
  6068. If NUMEROPERSONAGGI$<>""
  6069.  NUMEROPERSONAGGI=Val(NUMEROPERSONAGGI$) : Dec NUMEROPERSONAGGI
  6070.  Proc LIMITI[NUMEROPERSONAGGI,0,NUMMASL] : NUMEROP=Param
  6071. End If 
  6072. Curs Off 
  6073. End Proc
  6074. Procedure M0DNUMR
  6075. Cls 
  6076. Print "Numero delle regioni>";Str$(NUMEROR+1)-" "
  6077. Locate 0,ULTIMALINEA : Input "Nuovo numero delle regioni (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROREGIONI$;
  6078. If NUMEROREGIONI$<>""
  6079.  NUMEROREGIONI=Val(NUMEROREGIONI$) : Dec NUMEROREGIONI
  6080.  Proc LIMITI[NUMEROREGIONI,0,NUMMASL] : NUMEROR=Param
  6081. End If 
  6082. Curs Off 
  6083. End Proc
  6084. Procedure M0DNUMS
  6085. Cls 
  6086. Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  6087. Locate 0,ULTIMALINEA : Input "Nuovo numero delle stanze (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  6088. If NUMEROSTANZE$<>""
  6089.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  6090.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROS(EDIFICIO)=Param
  6091. End If 
  6092. Curs Off 
  6093. End Proc
  6094. Procedure M0DOGGETTO
  6095. CO=CATEGORIAO(OGGETTO)
  6096. Repeat 
  6097.  Cls 
  6098.  Print "Nome dell'oggetto";OGGETTO;">";
  6099.  If Btst(1,TIPOO(OGGETTO))=True
  6100.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6101.  Else 
  6102.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6103.  End If 
  6104.  Print At(0,ULTIMALINEA-1);"Nuovo nome dell'oggetto";OGGETTO;">";
  6105.  If Btst(1,TIPOO(OGGETTO))=True
  6106.   Print NOMESRO$(CO);
  6107.  Else 
  6108.   Print NOMESCO$(CO);
  6109.  End If 
  6110.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo nome Spazio conferma",ULTIMALINEA]
  6111.  Repeat 
  6112.   TASTOPREMUTO$=Inkey$
  6113.  Until TASTOPREMUTO$<>""
  6114.  If TASTOPREMUTO$=Cup$ Then Add CO,-1,0 To NUMEROCO
  6115.  If TASTOPREMUTO$=Cdown$ Then Add CO,1,0 To NUMEROCO
  6116. Until TASTOPREMUTO$=" "
  6117. CATEGORIAO(OGGETTO)=CO
  6118. Cls 
  6119. Print "Nome dell'oggetto";OGGETTO;">";
  6120. If Btst(1,TIPOO(OGGETTO))=True
  6121.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  6122. Else 
  6123.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  6124. End If 
  6125. Print "Posizione dell'oggetto";OGGETTO;">";
  6126. If POSIZIONEO(OGGETTO)<0
  6127.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  6128.  If Btst(0,TIPOO(OGGETTO))=True
  6129.   Print "posseduto dal personaggio";SOGGETTO;
  6130.   Print " nome>";NOMEP$(SOGGETTO)
  6131.   If POSIZIONEO(OGGETTO)=-1
  6132.    POSSEDUTODALPERSONAGGIO0=True
  6133.   End If 
  6134.  Else 
  6135.   Print "contenuto nell'oggetto";SOGGETTO;
  6136.   Print " nome>";NOMESCO$(CATEGORIAO(SOGGETTO))
  6137.  End If 
  6138. Else 
  6139.  E=POSIZIONEO(OGGETTO)/$10000
  6140.  If E>0
  6141.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6142.   S=POSIZIONEO(OGGETTO) mod $10000
  6143.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6144.  Else 
  6145.   Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  6146.  End If 
  6147. End If 
  6148. Print At(0,ULTIMALINEA-1);"Luogo dell'oggetto (0-";
  6149. Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6150. Locate 0,ULTIMALINEA : Input "Nuovo luogo dell'oggetto>";NUMEROLUOGO$;
  6151. If NUMEROLUOGO$<>""
  6152.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6153.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6154.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6155.   If NUMEROEDIFICIO$<>""
  6156.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6157.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6158.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6159.    If NUMEROSTANZA$<>""
  6160.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6161.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6162.     POSIZIONEO(OGGETTO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6163.    End If 
  6164.   End If 
  6165.  Else If NUMEROLUOGO$="o"
  6166.   Print At(0,ULTIMALINEA-1);"Oggetto che contiene l'oggetto";OGGETTO;
  6167.   Print " (0-";Str$(NUMEROO)-" ";")             ";
  6168.   Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6169.   If NUMEROOGGETTO$<>""
  6170.    NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6171.    Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6172.    If NUMEROOGGETTO=OGGETTO
  6173.     Curs Off 
  6174.     Print At(0,ULTIMALINEA);"L'oggetto non pu� contenere s� stesso";
  6175.     Proc _ASPETTA
  6176.    Else 
  6177.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6178.      POSIZIONEO(OGGETTO)= Not NUMEROOGGETTO : Bclr 0,TIPOO(OGGETTO)
  6179.     Else 
  6180.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6181.      Proc _ASPETTA
  6182.     End If 
  6183.    End If 
  6184.   End If 
  6185.  Else If NUMEROLUOGO$="p"
  6186.   Locate 0,ULTIMALINEA-1 : Cline : Print "Personaggio che possiede l'oggetto (0-";
  6187.   Print Str$(NUMEROP)-" ";")"
  6188.   Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6189.   If NUMEROPERSONAGGIO$<>""
  6190.    NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6191.    Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6192.    POSIZIONEO(OGGETTO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOO(OGGETTO)
  6193.    If Btst(1,TIPOO(OGGETTO))=True
  6194.     Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(OGGETTO))
  6195.    Else 
  6196.     Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(OGGETTO))
  6197.    End If 
  6198.    If NUMEROPERSONAGGIO=0
  6199.     If Btst(1,TIPOO(OGGETTO))=True
  6200.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6201.     Else 
  6202.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6203.     End If 
  6204.    End If 
  6205.    If Btst(1,TIPOCO(CATEGORIAO(OGGETTO)))=True
  6206.     For A=0 To NUMEROO
  6207.      If POSIZIONEO(A)=-1-OGGETTO and Btst(0,TIPOO(A))=False
  6208.       If Btst(1,TIPOO(A))=True
  6209.        Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(A))
  6210.       Else 
  6211.        Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(A))
  6212.       End If 
  6213.      End If 
  6214.     Next A
  6215.     For A=0 To NUMEROP
  6216.      If POSIZIONEP(A)=-1-OGGETTO and Btst(0,TIPOP(A))=False
  6217.       Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(A)
  6218.       Add PESONETTOP(NUMEROPERSONAGGIO),PESONETTOP(A)
  6219.      End If 
  6220.     Next A
  6221.    End If 
  6222.   End If 
  6223.  Else 
  6224.   NUMEROLUOGO=Val(NUMEROLUOGO$)
  6225.   Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEO(OGGETTO)=Param
  6226.  End If 
  6227.  If POSSEDUTODALPERSONAGGIO0=True
  6228.   If Btst(1,TIPOO(OGGETTO))=True
  6229.    Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6230.   Else 
  6231.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6232.   End If 
  6233.  End If 
  6234. End If 
  6235. Curs Off 
  6236. If POSIZIONEO(OGGETTO)>0 or Btst(0,TIPOO(OGGETTO))=False or Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=False or Btst(2,TIPOO(OGGETTO))=False
  6237.  Cls 
  6238.  Print "Nome dell'oggetto";OGGETTO;">";
  6239.  If Btst(1,TIPOO(OGGETTO))=True
  6240.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6241.  Else 
  6242.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6243.  End If 
  6244.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto sia un resto di oggetto (s/n) ?>";
  6245.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6246.  If RISPOSTA$="s"
  6247.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6248.    If Btst(1,TIPOO(OGGETTO))=False
  6249.     Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6250.     Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6251.    End If 
  6252.   End If 
  6253.   Bset 1,TIPOO(OGGETTO)
  6254.  Else 
  6255.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6256.    If Btst(1,TIPOO(OGGETTO))=True
  6257.     Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6258.     Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6259.    End If 
  6260.   End If 
  6261.   Bclr 1,TIPOO(OGGETTO)
  6262.  End If 
  6263. End If 
  6264. If POSIZIONEO(OGGETTO)<0 and Btst(0,TIPOO(OGGETTO))=True and Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=True and Btst(1,TIPOO(OGGETTO))=False
  6265.  Cls 
  6266.  Print "Nome dell'oggetto";OGGETTO;">";NOMESCO$(CATEGORIAO(OGGETTO))
  6267.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto difensivo sia indossato (s/n) ?>";
  6268.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6269.  If RISPOSTA$="s"
  6270.   Bset 2,TIPOO(OGGETTO)
  6271.  Else 
  6272.   Bclr 2,TIPOO(OGGETTO)
  6273.  End If 
  6274. End If 
  6275. Locate 0,ULTIMALINEA : Cline 
  6276. Print "Vuoi che l'oggetto sia nascosto (s/n) ?>";
  6277. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6278. If RISPOSTA$="s"
  6279.  Bset 3,TIPOO(OGGETTO)
  6280. Else 
  6281.  Bclr 3,TIPOO(OGGETTO)
  6282. End If 
  6283. End Proc
  6284. Procedure M0DPERSONAGGIO
  6285. Cls 
  6286. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6287. Locate 0,ULTIMALINEA : Input "Nuovo nome del personaggio"+Str$(PERSONAGGIO)+">";NOMEPERSONAGGIO$;
  6288. If NOMEPERSONAGGIO$<>"" Then NOMEP$(PERSONAGGIO)=NOMEPERSONAGGIO$
  6289. Cls 
  6290. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6291. Print "Posizione del personaggio";PERSONAGGIO;">";
  6292. If POSIZIONEP(PERSONAGGIO)<0
  6293.  SOGGETTO= Not POSIZIONEP(PERSONAGGIO)
  6294.  If Btst(0,TIPOP(PERSONAGGIO))=True
  6295.   Print "trasportato dal personaggio";SOGGETTO;
  6296.   Print " di nome ";NOMEP$(SOGGETTO)
  6297.  Else 
  6298.   Print "contenuto nell'oggetto";SOGGETTO;
  6299.   Print " di nome ";NOMESCO$(CATEGORIAO(SOGGETTO))
  6300.  End If 
  6301. Else 
  6302.  E=POSIZIONEP(PERSONAGGIO)/$10000
  6303.  If E>0
  6304.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6305.   S=POSIZIONEP(PERSONAGGIO) mod $10000
  6306.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6307.  Else 
  6308.   Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  6309.  End If 
  6310. End If 
  6311. If PERSONAGGIO=0
  6312.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";Str$(NUMEROL)-" ";" E=Edificio)";
  6313.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6314.  If NUMEROLUOGO$<>""
  6315.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6316.    Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  6317.    If NUMEROEDIFICIO$<>""
  6318.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6319.     Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  6320.     Locate 0,ULTIMALINEA : Input "Quale stanza (0-"+Str$(NUMEROS(NUMEROEDIFICIO))-" "+") ?>";NUMEROSTANZA$;
  6321.     If NUMEROSTANZA$<>""
  6322.      NUMEROSTANZA=Val(NUMEROSTANZA$)
  6323.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6324.      POSIZIONEP(PERSONAGGIO)=(NUMEROEDIFICIO+1)*$10000+NUMEROSTANZA
  6325.     End If 
  6326.    End If 
  6327.   Else 
  6328.    NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6329.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6330.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6331.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6332.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6333.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6334.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6335.   End If 
  6336.  End If 
  6337. Else 
  6338.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";
  6339.  Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6340.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6341.  If NUMEROLUOGO$<>""
  6342.   NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6343.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6344.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6345.    If NUMEROEDIFICIO$<>""
  6346.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6347.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6348.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6349.     If NUMEROSTANZA$<>""
  6350.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6351.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6352.      POSIZIONEP(PERSONAGGIO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6353.     End If 
  6354.    End If 
  6355.   Else If NUMEROLUOGO$="o"
  6356.    Print At(0,ULTIMALINEA-1);"Oggetto che contiene il personaggio (0-";
  6357.    Print Str$(NUMEROO)-" ";")             ";
  6358.    Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6359.    If NUMEROOGGETTO$<>""
  6360.     NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6361.     Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6362.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6363.      POSIZIONEP(PERSONAGGIO)= Not NUMEROOGGETTO : Bclr 0,TIPOP(PERSONAGGIO)
  6364.     Else 
  6365.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6366.      Proc _ASPETTA
  6367.     End If 
  6368.    End If 
  6369.   Else If NUMEROLUOGO$="p"
  6370.    Print At(0,ULTIMALINEA-1);"Personaggio che trasporta il personaggio";PERSONAGGIO;
  6371.    Print " (0-";Str$(NUMEROP)-" ";")    ";
  6372.    Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6373.    If NUMEROPERSONAGGIO$<>""
  6374.     NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6375.     Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6376.     If NUMEROPERSONAGGIO=PERSONAGGIO
  6377.      Curs Off 
  6378.      Print At(0,ULTIMALINEA);"Il personaggio non pu� trasportare s� stesso";
  6379.      Proc _ASPETTA
  6380.     Else 
  6381.      POSIZIONEP(PERSONAGGIO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOP(PERSONAGGIO)
  6382.      Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(PERSONAGGIO)*1000
  6383.     End If 
  6384.    End If 
  6385.   Else 
  6386.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6387.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6388.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6389.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6390.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6391.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6392.   End If 
  6393.  End If 
  6394. End If 
  6395. Curs Off 
  6396. Cls 
  6397. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6398. Print "Costituzione del personaggio";PERSONAGGIO;">";
  6399. Print Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  6400. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6401. Locate 0,ULTIMALINEA
  6402. Input "Nuova costituzione del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";C0STITUZIONEPERSONAGGIO$;
  6403. If C0STITUZIONEPERSONAGGIO$<>""
  6404.  C0STITUZIONEPERSONAGGIO=Val(C0STITUZIONEPERSONAGGIO$)
  6405.  LIMITI[C0STITUZIONEPERSONAGGIO,1,65536]
  6406.  C0STITUZIONEP(PERSONAGGIO)=Param
  6407. End If 
  6408. Cls 
  6409. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6410. Print "Forza del personaggio";PERSONAGGIO;">";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  6411. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6412. Locate 0,ULTIMALINEA
  6413. Input "Nuova forza del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";F0RZAPERSONAGGIO$;
  6414. If F0RZAPERSONAGGIO$<>""
  6415.  F0RZAPERSONAGGIO=Val(F0RZAPERSONAGGIO$)
  6416.  LIMITI[F0RZAPERSONAGGIO,1,65536] : F0RZAP(PERSONAGGIO)=Param
  6417. End If 
  6418. Cls 
  6419. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6420. Print "Peso del personaggio";PERSONAGGIO;">";Str$(PESOP(PERSONAGGIO))-" ";" ";
  6421. If PESOP(PERSONAGGIO)=1 Then Print "chilo" Else Print "chili"
  6422. Locate 0,ULTIMALINEA
  6423. Input "Nuovo peso del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";PESOPERSONAGGIO$;
  6424. If PESOPERSONAGGIO$<>""
  6425.  PESOPERSONAGGIO=Val(PESOPERSONAGGIO$) : PESOPRECEDENTE=PESOP(PERSONAGGIO)
  6426.  LIMITI[PESOPERSONAGGIO,1,65536] : PESOP(PERSONAGGIO)=Param
  6427.  For A=0 To NUMEROP
  6428.   If POSIZIONEP(PERSONAGGIO)=-1-A and Btst(0,TIPOP(PERSONAGGIO))=True
  6429.    Add PESONETTOP(A),-PESOPRECEDENTE*1000
  6430.    Add PESONETTOP(A),PESOP(PERSONAGGIO)*1000
  6431.   End If 
  6432.  Next A
  6433. End If 
  6434. Cls 
  6435. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6436. Print "Resistenza del personaggio";PERSONAGGIO;">";
  6437. Print Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  6438. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6439. Locate 0,ULTIMALINEA
  6440. Input "Nuova resistenza del personaggio"+Str$(PERSONAGGIO)+" (0-"+Str$(C0STITUZIONEP(PERSONAGGIO))-" "+")>";RESISTENZAPERSONAGGIO$;
  6441. If RESISTENZAPERSONAGGIO$<>""
  6442.  RESISTENZAPERSONAGGIO=Val(RESISTENZAPERSONAGGIO$)
  6443.  LIMITI[RESISTENZAPERSONAGGIO,0,C0STITUZIONEP(PERSONAGGIO)]
  6444.  RESISTENZAP(PERSONAGGIO)=Param
  6445.  If RESISTENZAP(PERSONAGGIO)=0
  6446.   For A=0 To NUMEROO
  6447.    If POSIZIONEO(A)=-1-PERSONAGGIO and Btst(0,TIPOO(A))=True
  6448.    POSIZIONEO(A)=POSIZIONEP(PERSONAGGIO)
  6449.     If Btst(1,TIPOO(A))=True
  6450.      Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(A))
  6451.     Else 
  6452.      Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(A))
  6453.     End If 
  6454.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  6455.      For B=0 To NUMEROO
  6456.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  6457.        If Btst(1,TIPOO(B))=True
  6458.         Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(B))
  6459.        Else 
  6460.         Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(B))
  6461.        End If 
  6462.       End If 
  6463.      Next B
  6464.      For B=1 To NUMEROP
  6465.       If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  6466.        Add PESONETTOP(PERSONAGGIO),-PESOP(B)*1000
  6467.        Add PESONETTOP(PERSONAGGIO),-PESONETTOP(B)
  6468.       End If 
  6469.      Next B
  6470.     End If 
  6471.    End If 
  6472.   Next A
  6473.   Add SOLDIL(POSIZIONEP(PERSONAGGIO)),SOLDIP(PERSONAGGIO)
  6474.   Add PESONETTOP(PERSONAGGIO),-SOLDIP(PERSONAGGIO)*PESOS
  6475.   SOLDIP(PERSONAGGIO)=0
  6476.  End If 
  6477. End If 
  6478. Cls 
  6479. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6480. Print "Sesso del personaggio";PERSONAGGIO;">";
  6481. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  6482. Locate 0,ULTIMALINEA
  6483. Input "Nuovo sesso del personaggio"+Str$(PERSONAGGIO)+" (M=maschile F=femminile)>";SESSOPERSONAGGIO$;
  6484. SESSOPERSONAGGIO$=Lower$(Left$(SESSOPERSONAGGIO$,1))
  6485. If SESSOPERSONAGGIO$<>""
  6486.  If SESSOPERSONAGGIO$="f"
  6487.   Bset 1,TIPOP(PERSONAGGIO)
  6488.  End If 
  6489.  If SESSOPERSONAGGIO$="m"
  6490.   Bclr 1,TIPOP(PERSONAGGIO)
  6491.  End If 
  6492. End If 
  6493. If PERSONAGGIO>0
  6494.  Cls 
  6495.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6496.  Print "Condizione del personaggio";PERSONAGGIO;">";
  6497.  If Btst(3,TIPOP(PERSONAGGIO))=True
  6498.   Print "Nemic";
  6499.  Else 
  6500.   Print "Amic";
  6501.  End If 
  6502.  If Btst(1,TIPOP(PERSONAGGIO))=True
  6503.   Print "a"
  6504.  Else 
  6505.   Print "o"
  6506.  End If 
  6507.  Locate 0,ULTIMALINEA
  6508.  Input "Nuova condizione del personaggio"+Str$(PERSONAGGIO)+" (A=amico/a N=nemico/a)>";CONDIZIONEPERSONAGGIO$;
  6509.  CONDIZIONEPERSONAGGIO$=Lower$(Left$(CONDIZIONEPERSONAGGIO$,1))
  6510.  If CONDIZIONEPERSONAGGIO$<>""
  6511.   If CONDIZIONEPERSONAGGIO$="n"
  6512.    Bset 3,TIPOP(PERSONAGGIO)
  6513.   End If 
  6514.   If CONDIZIONEPERSONAGGIO$="a"
  6515.    Bclr 3,TIPOP(PERSONAGGIO)
  6516.   End If 
  6517.  End If 
  6518. End If 
  6519. SOLDIPRECEDENTI=SOLDIP(PERSONAGGIO)
  6520. Cls 
  6521. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6522. Print "Soldi del personaggio";PERSONAGGIO;">";Str$(SOLDIPRECEDENTI)-" ";" ";
  6523. If SOLDIPRECEDENTI=1 Then Print "soldo" Else Print "soldi"
  6524. Locate 0,ULTIMALINEA
  6525. Input "Nuovi soldi del personaggio"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDIPERSONAGGIO$;
  6526. If SOLDIPERSONAGGIO$<>""
  6527.  SOLDIPERSONAGGIO=Val(SOLDIPERSONAGGIO$)
  6528.  Proc LIMITI[SOLDIPERSONAGGIO,0,65535] : SOLDIP(PERSONAGGIO)=Param
  6529.  If SOLDIPERSONAGGIO>0
  6530.   Add PESONETTOP(PERSONAGGIO),-SOLDIPRECEDENTI*PESOS
  6531.   Add PESONETTOP(PERSONAGGIO),SOLDIPERSONAGGIO*PESOS
  6532.  End If 
  6533. End If 
  6534. If PERSONAGGIO>0
  6535.  Cls 
  6536.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6537.  Print "Inizio sonno del personaggio>";PERSONAGGIO;">";
  6538.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  6539.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  6540.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  6541.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  6542.  Locate 0,ULTIMALINEA
  6543.  Input "Ore del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-23)>";INIZIOSONNOPERSONAGGIO$;
  6544.  If INIZIOSONNOPERSONAGGIO$<>""
  6545.   INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6546.   Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,23] : INIZIOSONNOP(PERSONAGGIO)=Param*60
  6547.   Locate 0,ULTIMALINEA
  6548.   Input "Minuti del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-59)>";INIZIOSONNOPERSONAGGIO$;
  6549.   If INIZIOSONNOPERSONAGGIO$<>""
  6550.    INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6551.    Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,59] : Add INIZIOSONNOP(PERSONAGGIO),Param
  6552.   End If 
  6553.  End If 
  6554.  Curs Off 
  6555.  For A=0 To 7
  6556.   Cls 
  6557.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6558.   AZIONE=AZIONEP(A,PERSONAGGIO)
  6559.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  6560.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  6561.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  6562.   Print "Azione";A+1;">";
  6563.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6564.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuova azione Spazio conferma",ULTIMALINEA]
  6565.   Repeat 
  6566.    Print At(0,ULTIMALINEA-2); : Cline : Print : Cline : Cmove ,-1
  6567.    Print "azione";A+1;">";
  6568.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6569.    Repeat 
  6570.     TASTOPREMUTO$=Inkey$
  6571.    Until TASTOPREMUTO$<>""
  6572.    If TASTOPREMUTO$=Cup$
  6573.     Add AZIONE,-1,1 To 41
  6574.    End If 
  6575.    If TASTOPREMUTO$=Cdown$
  6576.     Add AZIONE,1,1 To 41
  6577.    End If 
  6578.   Until TASTOPREMUTO$=" "
  6579.   AZIONEP(A,PERSONAGGIO)=AZIONE
  6580.   Proc TIC["Vuoi modificare i parametri dell'azione (s/n) ?",ULTIMALINEA]
  6581.   RISPOSTA$=Input$(1)
  6582.   If RISPOSTA$="s"
  6583.    Proc INSERISCIPARAMETRIAZIONE[AZIONE,A,PERSONAGGIO]
  6584.    Curs Off 
  6585.   End If 
  6586.  Next A
  6587. End If 
  6588. Curs Off 
  6589. End Proc
  6590. Procedure M0DREGIONE
  6591. Cls 
  6592. Print "Nome della regione";REGIONE;">";NOMER$(REGIONE)
  6593. Locate 0,ULTIMALINEA : Input "Nuovo nome della regione"+Str$(REGIONE)+">";NOMEREGIONE$;
  6594. If NOMEREGIONE$<>"" Then NOMER$(REGIONE)=NOMEREGIONE$
  6595. Curs Off 
  6596. End Proc
  6597. Procedure M0DSTANZA
  6598. Cls 
  6599. Print "Nome della stanza";STANZA;">";NOMES$(STANZA,EDIFICIO)
  6600. Locate 0,ULTIMALINEA
  6601. Input "Nuovo nome della stanza"+Str$(LUOGO)+">";NOMESTANZA$;
  6602. If NOMESTANZA$<>"" Then NOMES$(STANZA,EDIFICIO)=NOMESTANZA$
  6603. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  6604. Cls 
  6605. Print "Direzione Nord della stanza";STANZA;">";
  6606. E=DREZIONE/$10000
  6607. If E>0
  6608.  S=DREZIONE mod $10000
  6609.  Print "edificio";E;" stanza";S
  6610. Else 
  6611.  If DREZIONE<$FFFF
  6612.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6613.  Else 
  6614.   Print " nessuno"
  6615.  End If 
  6616. End If 
  6617. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6618. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6619. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6620. If NUMEROLUOGO$<>""
  6621.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6622.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6623.   If NUMEROEDIFICIO$<>""
  6624.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6625.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6626.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6627.    If NUMEROSTANZA$<>""
  6628.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6629.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6630.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6631.    End If 
  6632.   End If 
  6633.  Else 
  6634.   If NUMEROLUOGO$="n"
  6635.    DREZIONE=$FFFF
  6636.   Else 
  6637.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6638.   End If 
  6639.  End If 
  6640.  DREZIONES(0,STANZA,EDIFICIO)=DREZIONE
  6641. End If 
  6642. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  6643. Cls 
  6644. Print "Direzione NordEst della stanza";STANZA;">";
  6645. E=DREZIONE/$10000
  6646. If E>0
  6647.  S=DREZIONE mod $10000
  6648.  Print "edificio";E;" stanza";S
  6649. Else 
  6650.  If DREZIONE<$FFFF
  6651.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6652.  Else 
  6653.   Print " nessuno"
  6654.  End If 
  6655. End If 
  6656. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6657. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6658. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6659. If NUMEROLUOGO$<>""
  6660.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6661.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6662.   If NUMEROEDIFICIO$<>""
  6663.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6664.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6665.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6666.    If NUMEROSTANZA$<>""
  6667.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6668.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6669.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6670.    End If 
  6671.   End If 
  6672.  Else 
  6673.   If NUMEROLUOGO$="n"
  6674.    DREZIONE=$FFFF
  6675.   Else 
  6676.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6677.   End If 
  6678.  End If 
  6679.  DREZIONES(1,STANZA,EDIFICIO)=DREZIONE
  6680. End If 
  6681. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  6682. Cls 
  6683. Print "Direzione Est della stanza";STANZA;">";
  6684. E=DREZIONE/$10000
  6685. If E>0
  6686.  S=DREZIONE mod $10000
  6687.  Print "edificio";E;" stanza";S
  6688. Else 
  6689.  If DREZIONE<$FFFF
  6690.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6691.  Else 
  6692.   Print " nessuno"
  6693.  End If 
  6694. End If 
  6695. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6696. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6697. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6698. If NUMEROLUOGO$<>""
  6699.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6700.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6701.   If NUMEROEDIFICIO$<>""
  6702.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6703.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6704.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6705.    If NUMEROSTANZA$<>""
  6706.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6707.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6708.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6709.    End If 
  6710.   End If 
  6711.  Else 
  6712.   If NUMEROLUOGO$="n"
  6713.    DREZIONE=$FFFF
  6714.   Else 
  6715.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6716.   End If 
  6717.  End If 
  6718.  DREZIONES(2,STANZA,EDIFICIO)=DREZIONE
  6719. End If 
  6720. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  6721. Cls 
  6722. Print "Direzione SudEst della stanza";STANZA;">";
  6723. E=DREZIONE/$10000
  6724. If E>0
  6725.  S=DREZIONE mod $10000
  6726.  Print "edificio";E;" stanza";S
  6727. Else 
  6728.  If DREZIONE<$FFFF
  6729.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6730.  Else 
  6731.   Print " nessuno"
  6732.  End If 
  6733. End If 
  6734. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6735. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6736. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6737. If NUMEROLUOGO$<>""
  6738.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6739.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6740.   If NUMEROEDIFICIO$<>""
  6741.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6742.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6743.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6744.    If NUMEROSTANZA$<>""
  6745.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6746.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6747.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6748.    End If 
  6749.   End If 
  6750.  Else 
  6751.   If NUMEROLUOGO$="n"
  6752.    DREZIONE=$FFFF
  6753.   Else 
  6754.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6755.   End If 
  6756.  End If 
  6757.  DREZIONES(3,STANZA,EDIFICIO)=DREZIONE
  6758. End If 
  6759. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  6760. Cls 
  6761. Print "Direzione Sud della stanza";STANZA;">";
  6762. E=DREZIONE/$10000
  6763. If E>0
  6764.  S=DREZIONE mod $10000
  6765.  Print "edificio";E;" stanza";S
  6766. Else 
  6767.  If DREZIONE<$FFFF
  6768.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6769.  Else 
  6770.   Print " nessuno"
  6771.  End If 
  6772. End If 
  6773. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6774. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6775. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6776. If NUMEROLUOGO$<>""
  6777.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6778.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6779.   If NUMEROEDIFICIO$<>""
  6780.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6781.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6782.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6783.    If NUMEROSTANZA$<>""
  6784.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6785.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6786.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6787.    End If 
  6788.   End If 
  6789.  Else 
  6790.   If NUMEROLUOGO$="n"
  6791.    DREZIONE=$FFFF
  6792.   Else 
  6793.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6794.   End If 
  6795.  End If 
  6796.  DREZIONES(4,STANZA,EDIFICIO)=DREZIONE
  6797. End If 
  6798. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  6799. Cls 
  6800. Print "Direzione SudOvest della stanza";STANZA;">";
  6801. E=DREZIONE/$10000
  6802. If E>0
  6803.  S=DREZIONE mod $10000
  6804.  Print "edificio";E;" stanza";S
  6805. Else 
  6806.  If DREZIONE<$FFFF
  6807.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6808.  Else 
  6809.   Print " nessuno"
  6810.  End If 
  6811. End If 
  6812. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6813. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6814. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6815. If NUMEROLUOGO$<>""
  6816.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6817.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6818.   If NUMEROEDIFICIO$<>""
  6819.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6820.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6821.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6822.    If NUMEROSTANZA$<>""
  6823.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6824.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6825.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6826.    End If 
  6827.   End If 
  6828.  Else 
  6829.   If NUMEROLUOGO$="n"
  6830.    DREZIONE=$FFFF
  6831.   Else 
  6832.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6833.   End If 
  6834.  End If 
  6835.  DREZIONES(5,STANZA,EDIFICIO)=DREZIONE
  6836. End If 
  6837. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  6838. Cls 
  6839. Print "Direzione Ovest della stanza";STANZA;">";
  6840. E=DREZIONE/$10000
  6841. If E>0
  6842.  S=DREZIONE mod $10000
  6843.  Print "edificio";E;" stanza";S
  6844. Else 
  6845.  If DREZIONE<$FFFF
  6846.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6847.  Else 
  6848.   Print " nessuno"
  6849.  End If 
  6850. End If 
  6851. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6852. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6853. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6854. If NUMEROLUOGO$<>""
  6855.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6856.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6857.   If NUMEROEDIFICIO$<>""
  6858.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6859.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6860.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6861.    If NUMEROSTANZA$<>""
  6862.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6863.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6864.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6865.    End If 
  6866.   End If 
  6867.  Else 
  6868.   If NUMEROLUOGO$="n"
  6869.    DREZIONE=$FFFF
  6870.   Else 
  6871.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6872.   End If 
  6873.  End If 
  6874.  DREZIONES(6,STANZA,EDIFICIO)=DREZIONE
  6875. End If 
  6876. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  6877. Cls 
  6878. Print "Direzione NordOvest della stanza";STANZA;">";
  6879. E=DREZIONE/$10000
  6880. If E>0
  6881.  S=DREZIONE mod $10000
  6882.  Print "edificio";E;" stanza";S
  6883. Else 
  6884.  If DREZIONE<$FFFF
  6885.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6886.  Else 
  6887.   Print " nessuno"
  6888.  End If 
  6889. End If 
  6890. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6891. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6892. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6893. If NUMEROLUOGO$<>""
  6894.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6895.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6896.   If NUMEROEDIFICIO$<>""
  6897.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6898.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6899.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6900.    If NUMEROSTANZA$<>""
  6901.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6902.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6903.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6904.    End If 
  6905.   End If 
  6906.  Else 
  6907.   If NUMEROLUOGO$="n"
  6908.    DREZIONE=$FFFF
  6909.   Else 
  6910.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6911.   End If 
  6912.  End If 
  6913.  DREZIONES(7,STANZA,EDIFICIO)=DREZIONE
  6914. End If 
  6915. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  6916. Cls 
  6917. Print "Direzione Sopra della stanza";STANZA;">";
  6918. E=DREZIONE/$10000
  6919. If E>0
  6920.  S=DREZIONE mod $10000
  6921.  Print "edificio";E;" stanza";S
  6922. Else 
  6923.  If DREZIONE<$FFFF
  6924.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6925.  Else 
  6926.   Print " nessuno"
  6927.  End If 
  6928. End If 
  6929. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6930. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6931. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6932. If NUMEROLUOGO$<>""
  6933.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6934.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6935.   If NUMEROEDIFICIO$<>""
  6936.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6937.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6938.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6939.    If NUMEROSTANZA$<>""
  6940.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6941.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6942.     If NUMEROSTANZA=0
  6943.      DREZIONE=NUMEROEDIFICIO*$10000
  6944.     Else 
  6945.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6946.     End If 
  6947.    End If 
  6948.   End If 
  6949.  Else 
  6950.   If NUMEROLUOGO$="n"
  6951.    DREZIONE=$FFFF
  6952.   Else 
  6953.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6954.   End If 
  6955.  End If 
  6956.  DREZIONES(8,STANZA,EDIFICIO)=DREZIONE
  6957. End If 
  6958. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  6959. Cls 
  6960. Print "Direzione Sotto della stanza";STANZA;">luogo";
  6961. E=DREZIONE/$10000
  6962. If E>0
  6963.  S=DREZIONE mod $10000
  6964.  Print "edificio";E;" stanza";S
  6965. Else 
  6966.  If DREZIONE<$FFFF
  6967.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6968.  Else 
  6969.   Print " nessuno"
  6970.  End If 
  6971. End If 
  6972. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6973. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6974. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6975. If NUMEROLUOGO$<>""
  6976.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6977.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6978.   If NUMEROEDIFICIO$<>""
  6979.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6980.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6981.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6982.    If NUMEROSTANZA$<>""
  6983.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6984.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6985.     If NUMEROSTANZA=0
  6986.      DREZIONE=NUMEROEDIFICIO*$10000
  6987.     Else 
  6988.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6989.     End If 
  6990.    End If 
  6991.   End If 
  6992.  Else 
  6993.   If NUMEROLUOGO$="n"
  6994.    DREZIONE=$FFFF
  6995.   Else 
  6996.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6997.   End If 
  6998.  End If 
  6999.  DREZIONES(9,STANZA,EDIFICIO)=DREZIONE
  7000. End If 
  7001. Cls 
  7002. Print "Soldi nella stanza";STANZA;">";Str$(SOLDIS(STANZA,EDIFICIO))-" ";" ";
  7003. If SOLDIS(STANZA,EDIFICIO)=1 Then Print "soldo" Else Print "soldi"
  7004. Locate 0,ULTIMALINEA
  7005. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLASTANZA$;
  7006. If SOLDINELLASTANZA$<>""
  7007.  SOLDINELLASTANZA=Val(SOLDINELLASTANZA$)
  7008.  Proc LIMITI[SOLDINELLASTANZA,0,65535] : SOLDIS(STANZA,EDIFICIO)=Param
  7009. End If 
  7010. Curs Off 
  7011. End Proc
  7012. Procedure MORTE[P]
  7013. If P=0
  7014.  COMPIUTAAZIONE=0
  7015.  Print NOMEP$(0);" ï¿½ morto. La tua avventura ï¿½ finita."
  7016.  Print "La tua avventura ï¿½ durata";
  7017.  GIORNI=TEMP0TRASCORSO/1440
  7018.  If GIORNI>0
  7019.   Print GIORNI;
  7020.   If GIORNI=1
  7021.    Print " giorno"; Else Print " giorni";
  7022.   End If 
  7023.  End If 
  7024.  _ORE=TEMP0TRASCORSO/60 mod 24
  7025.  If _ORE>0
  7026.   Print _ORE;
  7027.   If _ORE=1
  7028.    Print " ora"; Else Print " ore";
  7029.   End If 
  7030.  End If 
  7031.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  7032.  If M1NUTI=1
  7033.   Print " minuto"; Else Print " minuti";
  7034.  End If 
  7035.  Print " di gioco."
  7036.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  7037. Else 
  7038.  If Btst(2,TIPOP(0))=False
  7039.   Remember X : Remember Y 
  7040.   Print NOMEP$(P);" ï¿½ mort";
  7041.   If Btst(1,TIPOP(P))=True
  7042.    Print "a"
  7043.   Else 
  7044.    Print "o"
  7045.   End If 
  7046.  End If 
  7047. End If 
  7048. For A=0 To NUMEROO
  7049.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  7050.  POSIZIONEO(A)=POSIZIONEP(P)
  7051.   If Btst(1,TIPOO(A))=True
  7052.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  7053.   Else 
  7054.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  7055.   End If 
  7056.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  7057.    For B=0 To NUMEROO
  7058.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  7059.      If Btst(1,TIPOO(B))=True
  7060.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  7061.      Else 
  7062.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  7063.      End If 
  7064.     End If 
  7065.    Next B
  7066.    For B=1 To NUMEROP
  7067.     If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  7068.      Add PESONETTOP(P),-PESOP(B)*1000
  7069.      Add PESONETTOP(P),-PESONETTOP(B)
  7070.     End If 
  7071.    Next B
  7072.   End If 
  7073.  End If 
  7074. Next A
  7075. Add SOLDIL(POSIZIONEP(P)),SOLDIP(P)
  7076. Add PESONETTOP(P),-SOLDIP(P)*PESOS
  7077. SOLDIP(P)=0
  7078. End Proc
  7079. Procedure MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  7080. If AZIONE=1
  7081.  Print "dai ai personaggi";PARA;" oggett";
  7082.  If PARA=1
  7083.   Print "o"
  7084.  Else 
  7085.   Print "i"
  7086.  End If 
  7087. Else If AZIONE=2
  7088.  Print "dai ai personaggi";PARA;" ";
  7089.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7090.  If PARA=1
  7091.   Print NOMESCO$(PARB)
  7092.  Else 
  7093.   Print NOMEPCO$(PARB)
  7094.  End If 
  7095. Else If AZIONE=3
  7096.  Print "dai ai personaggi";PARA;" oggett";
  7097.  If PARA=1
  7098.   Print "o ";
  7099.  Else 
  7100.   Print "i ";
  7101.  End If 
  7102.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7103. Else If AZIONE=4
  7104.  Print "dai ai personaggi";PARA;" personaggi";
  7105.  If PARA=1
  7106.   Print "o"
  7107.  Else 
  7108.   Print 
  7109.  End If 
  7110. Else If AZIONE=5
  7111.  Print "dai ai personaggi ";
  7112.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7113.  Print NOMEP$(PARA)
  7114. Else If AZIONE=6
  7115.  Print "dai a ";
  7116.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7117.  Print NOMEP$(PARA);PARB;" oggett";
  7118.  If PARB=1
  7119.   Print "o"
  7120.  Else 
  7121.   Print "i"
  7122.  End If 
  7123. Else If AZIONE=7
  7124.  Print "dai a ";
  7125.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7126.  Print NOMEP$(PARA);PARB;" ";
  7127.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7128.  If PARB=1
  7129.   Print NOMESCO$(PARC)
  7130.  Else 
  7131.   Print NOMEPCO$(PARC)
  7132.  End If 
  7133. Else If AZIONE=8
  7134.  Print "dai a ";
  7135.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7136.  Print NOMEP$(PARA);PARB;" oggett";
  7137.  If PARB=1
  7138.   Print "o ";
  7139.  Else 
  7140.   Print "i ";
  7141.  End If 
  7142.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7143. Else If AZIONE=9
  7144.  Print "dai a ";
  7145.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7146.  Print NOMEP$(PARA);PARB;" personaggi";
  7147.  If PARB=1
  7148.   Print "o"
  7149.  Else 
  7150.   Print 
  7151.  End If 
  7152. Else If AZIONE=10
  7153.  Print "dai a ";
  7154.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7155.  Print NOMEP$(PARA);" ";
  7156.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7157.  Print NOMEP$(PARB)
  7158. Else If AZIONE=11
  7159.  Print "lascia";PARA;" oggett";
  7160.  If PARA=1
  7161.   Print "o"
  7162.  Else 
  7163.   Print "i"
  7164.  End If 
  7165. Else If AZIONE=12
  7166.  Print "lascia";PARA;" ";
  7167.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7168.  If PARA=1
  7169.   Print NOMESCO$(PARB)
  7170.  Else 
  7171.   Print NOMEPCO$(PARB)
  7172.  End If 
  7173. Else If AZIONE=13
  7174.  Print "lascia";PARA;" oggett";
  7175.  If PARA=1
  7176.   Print "o ";
  7177.  Else 
  7178.   Print "i ";
  7179.  End If 
  7180.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7181. Else If AZIONE=14
  7182.  Print "lascia";PARA;" personaggi";
  7183.  If PARA=1
  7184.   Print "o"
  7185.  Else 
  7186.   Print 
  7187.  End If 
  7188. Else If AZIONE=15
  7189.  Print "lascia ";
  7190.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7191.  Print NOMEP$(PARA)
  7192. Else If AZIONE=16
  7193.  Print "muoviti"
  7194. Else If AZIONE=17
  7195.  Print "prendi";PARA;" oggett";
  7196.  If PARA=1
  7197.   Print "o"
  7198.  Else 
  7199.   Print "i"
  7200.  End If 
  7201. Else If AZIONE=18
  7202.  Print "prendi";PARA;" ";
  7203.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7204.  If PARA=1
  7205.   Print NOMESCO$(PARB)
  7206.  Else 
  7207.   Print NOMEPCO$(PARB)
  7208.  End If 
  7209. Else If AZIONE=19
  7210.  Print "prendi";PARA;" oggett";
  7211.  If PARA=1
  7212.   Print "o ";
  7213.  Else 
  7214.   Print "i ";
  7215.  End If 
  7216.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7217. Else If AZIONE=20
  7218.  Print "prendi";PARA;" personaggi";
  7219.  If PARA=1
  7220.   Print "o"
  7221.  Else 
  7222.   Print 
  7223.  End If 
  7224. Else If AZIONE=21
  7225.  Print "prendi ";
  7226.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7227.  Print NOMEP$(PARA)
  7228. Else If AZIONE=22
  7229.  Print "segui"
  7230. Else If AZIONE=23
  7231.  Print "segui ";
  7232.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7233.  Print NOMEP$(PARA)
  7234. Else If AZIONE=24
  7235.  Print "usa un'oggetto su";PARA;" oggett";
  7236.  If PARA=1
  7237.   Print "o"
  7238.  Else 
  7239.   Print "i"
  7240.  End If 
  7241. Else If AZIONE=25
  7242.  Print "usa un'oggetto su";PARA;" ";
  7243.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7244.  If PARA=1
  7245.   Print NOMESCO$(PARB)
  7246.  Else 
  7247.   Print NOMEPCO$(PARB)
  7248.  End If 
  7249. Else If AZIONE=26
  7250.  Print "usa un'oggetto su";PARA;" oggett";
  7251.  If PARA=1
  7252.   Print "o ";
  7253.  Else 
  7254.   Print "i ";
  7255.  End If 
  7256.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7257. Else If AZIONE=27
  7258.  Print "usa un'oggetto su";PARA;" personaggi";
  7259.  If PARA=1
  7260.   Print "o"
  7261.  Else 
  7262.   Print 
  7263.  End If 
  7264. Else If AZIONE=28
  7265.  Print "usa un'oggetto su ";
  7266.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7267.  Print NOMEP$(PARA)
  7268. Else If AZIONE=29
  7269.  Print "usa 1 ";
  7270.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7271.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7272.  If PARB=1
  7273.   Print "o"
  7274.  Else 
  7275.   Print "i"
  7276.  End If 
  7277. Else If AZIONE=30
  7278.  Print "usa 1 ";
  7279.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7280.  Print NOMESCO$(PARA);" su";PARB;" ";
  7281.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7282.  If PARB=1
  7283.   Print NOMESCO$(PARC)
  7284.  Else 
  7285.   Print NOMEPCO$(PARC)
  7286.  End If 
  7287. Else If AZIONE=31
  7288.  Print "usa 1 ";
  7289.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7290.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7291.  If PARB=1
  7292.   Print "o ";
  7293.  Else 
  7294.   Print "i ";
  7295.  End If 
  7296.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7297. Else If AZIONE=32
  7298.  Print "usa 1 ";
  7299.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7300.  Print NOMESCO$(PARA);" su";PARB;" personaggi";
  7301.  If PARB=1
  7302.   Print "o"
  7303.  Else 
  7304.   Print 
  7305.  End If 
  7306. Else If AZIONE=33
  7307.  Print "usa 1 ";
  7308.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7309.  Print NOMESCO$(PARA);" su ";
  7310.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7311.  Print NOMEP$(PARB)
  7312. Else If AZIONE=34
  7313.  Print "usa un'oggetto ";
  7314.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7315.  Print Space$(9);"su";PARB;" oggett";
  7316.  If PARB=1
  7317.   Print "o"
  7318.  Else 
  7319.   Print "i"
  7320.  End If 
  7321. Else If AZIONE=35
  7322.  Print "usa un'oggetto ";
  7323.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7324.  Print Space$(9);"su";PARB;" ";
  7325.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7326.  If PARB=1
  7327.   Print NOMESCO$(PARC)
  7328.  Else 
  7329.   Print NOMEPCO$(PARC)
  7330.  End If 
  7331. Else If AZIONE=36
  7332.  Print "usa un'oggetto ";
  7333.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7334.  Print Space$(9);"su";PARB;" oggett";
  7335.  If PARB=1
  7336.   Print "o ";
  7337.  Else 
  7338.   Print "i ";
  7339.  End If 
  7340.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7341. Else If AZIONE=37
  7342.  Print "usa un'oggetto ";
  7343.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7344.  Print Space$(9);"su";PARB;" personaggi";
  7345.  If PARB=1
  7346.   Print "o"
  7347.  Else 
  7348.   Print 
  7349.  End If 
  7350. Else If AZIONE=38
  7351.  Print "usa un'oggetto ";
  7352.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7353.  Print Space$(9);"su ";
  7354.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7355.  Print NOMEP$(PARB)
  7356. Else If AZIONE=39
  7357.  Print "usati un'oggetto"
  7358. Else If AZIONE=40
  7359.  Print "usati un'oggetto ";
  7360.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7361.  Print NOMESCO$(PARA)
  7362. Else If AZIONE=41
  7363.  Print "usati un'oggetto ";
  7364.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7365. End If 
  7366. End Proc
  7367. Procedure MOSTRACATEGORIADEGLIOGGETTI
  7368. Cls 
  7369. If M0DIFICA=False
  7370.  Proc TIC[MESSAGGIO3$,0] : Print 
  7371. End If 
  7372. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>"
  7373. Print NOMESCO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  7374. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7375. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  7376. Print Str$(PESOOGGETTO)-" ";" ";
  7377. If PESOOGGETTO=1
  7378.  Print "grammo"
  7379. Else 
  7380.  Print "grammi"
  7381. End If 
  7382. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>"
  7383. Print NOMESRO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  7384. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>";
  7385. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  7386. Print Str$(PESORESTOOGGETTO)-" ";" ";
  7387. If PESORESTOOGGETTO=1
  7388.  Print "grammo"
  7389. Else 
  7390.  Print "grammi"
  7391. End If 
  7392. Print "Parametro della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7393. Print Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  7394. If Btst(0,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Commestibile"
  7395. If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Contenitore"
  7396. If Btst(2,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Difensivo"
  7397. If Btst(3,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Leggibile"
  7398. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Liquido"
  7399. If Btst(5,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Magico"
  7400. If Btst(6,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Offensivo"
  7401. If Btst(7,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Residente"
  7402. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=False Then Print "Solido"
  7403. If Btst(8,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasferibile"
  7404. If Btst(9,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasparente"
  7405. If Btst(10,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Vincolato"
  7406. End Proc
  7407. Procedure MOSTRACATEGORIAPERAZIONE[CATEGORIA]
  7408. If Btst(0,CATEGORIA)=True Then Print "commestibile ";
  7409. If Btst(1,CATEGORIA)=True Then Print "contenitore ";
  7410. If Btst(2,CATEGORIA)=True Then Print "difensivo ";
  7411. If Btst(3,CATEGORIA)=True Then Print "leggibile ";
  7412. If Btst(4,CATEGORIA)=True Then Print "liquido "; Else Print "solido ";
  7413. If Btst(5,CATEGORIA)=True Then Print "magico ";
  7414. If Btst(6,CATEGORIA)=True Then Print "offensivo ";
  7415. If Btst(8,CATEGORIA)=True Then Print "trasferibile ";
  7416. If Btst(9,CATEGORIA)=True Then Print "trasparente ";
  7417. If Btst(10,CATEGORIA)=True Then Print "vincolato ";
  7418. Print 
  7419. End Proc
  7420. Procedure MOSTRACATEGORIAPERINSERIMENTO[P]
  7421. Repeat 
  7422.  Cls 
  7423.  Print "Nome del personaggio";P;">";NOMEP$(P)
  7424.  Print At(0,ULTIMALINEA-11);"Categoria";CATEGORIA;" degli oggetti>";NOMEPCO$(CATEGORIA)
  7425.  If Btst(0,TIPOCO(CATEGORIA))=True Then Print "commestibile "
  7426.  If Btst(1,TIPOCO(CATEGORIA))=True Then Print "contenitore "
  7427.  If Btst(2,TIPOCO(CATEGORIA))=True Then Print "difensivo "
  7428.  If Btst(3,TIPOCO(CATEGORIA))=True Then Print "leggibile "
  7429.  If Btst(4,TIPOCO(CATEGORIA))=True Then Print "liquido " Else Print "solido "
  7430.  If Btst(5,TIPOCO(CATEGORIA))=True Then Print "magico "
  7431.  If Btst(6,TIPOCO(CATEGORIA))=True Then Print "offensivo "
  7432.  If Btst(8,TIPOCO(CATEGORIA))=True Then Print "trasferibile "
  7433.  If Btst(9,TIPOCO(CATEGORIA))=True Then Print "trasparente "
  7434.  If Btst(10,TIPOCO(CATEGORIA))=True Then Print "vincolato "
  7435.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli la categoria Spazio conferma",ULTIMALINEA]
  7436.  Repeat 
  7437.   TASTOPREMUTO$=Inkey$
  7438.  Until TASTOPREMUTO$<>""
  7439.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  7440.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  7441. Until TASTOPREMUTO$=" "
  7442. End Proc[TIPOCO(CATEGORIA)]
  7443. Procedure MOSTRAGLIEDIFICI
  7444. Shared TASTOPREMUTO$
  7445. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta edificio...C -> carica un"
  7446. MESSAGGIO2$=MESSAGGIO2$+" file di Adventures Conceiver...D -> mostra il desti"
  7447. MESSAGGIO2$=MESSAGGIO2$+"no (scopo) del gioco...G -> gioca un'avventura...I -"
  7448. MESSAGGIO2$=MESSAGGIO2$+"> mostra le stanze dell'edificio corrente...K -> mos"
  7449. MESSAGGIO2$=MESSAGGIO2$+"tra le categorie degli oggetti...L -> mostra i luogh"
  7450. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7451. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7452. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7453. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7454. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7455. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7456. Repeat 
  7457.  Proc MOSTRAEDIFICIO
  7458.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7459.  CARATTEREMESSAGGIO=0
  7460.  Repeat 
  7461.   TASTOPREMUTO$=Inkey$
  7462.   Proc MESSAGGIO[MESSAGGIO2$]
  7463.  Until TASTOPREMUTO$<>""
  7464.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7465.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7466.  If TASTOPREMUTO$="d" Then Exit 
  7467.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7468.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7469.  If TASTOPREMUTO$="k" Then Exit 
  7470.  If TASTOPREMUTO$="l" Then Exit 
  7471.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7472.  If TASTOPREMUTO$="o" Then Exit 
  7473.  If TASTOPREMUTO$="p" Then Exit 
  7474.  If TASTOPREMUTO$="r" Then Exit 
  7475.  If TASTOPREMUTO$="s"
  7476.   Proc DAVARIABILIABANCO[False]
  7477.   If SENZAMEMORIA=False
  7478.    Proc DAVARIABILIABANCO[True]
  7479.    If SENZAMEMORIA=False
  7480.     Proc SALVAUNFILE
  7481.    End If 
  7482.   End If 
  7483.  End If 
  7484.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7485.  If EDIFICIO>-1
  7486.   If TASTOPREMUTO$=Cup$
  7487.    Add EDIFICIO,-1,0 To NUMEROE
  7488.   End If 
  7489.   If TASTOPREMUTO$=Cdown$
  7490.    Add EDIFICIO,1,0 To NUMEROE
  7491.   End If 
  7492.  End If 
  7493. Until TASTOPREMUTO$=Chr$(27)
  7494. End Proc
  7495. Procedure MOSTRAGLIOGGETTI
  7496. Shared TASTOPREMUTO$
  7497. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta oggetto...C -> carica un "
  7498. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7499. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7500. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7501. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7502. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi M -> modifica un'avventur"
  7503. MESSAGGIO2$=MESSAGGIO2$+"a...P -> mostra i personaggi...R -> mostra le region"
  7504. MESSAGGIO2$=MESSAGGIO2$+"i...S -> salva un file di Adventures Conceiver...? -"
  7505. MESSAGGIO2$=MESSAGGIO2$+"> mostra i meriti...Esc -> esci da Adventures Concei"
  7506. MESSAGGIO2$=MESSAGGIO2$+"ver..."
  7507. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7508. Repeat 
  7509.  Proc MOSTRAOGGETTO
  7510.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7511.  CARATTEREMESSAGGIO=0
  7512.  Repeat 
  7513.   TASTOPREMUTO$=Inkey$
  7514.   Proc MESSAGGIO[MESSAGGIO2$]
  7515.  Until TASTOPREMUTO$<>""
  7516.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7517.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7518.  If TASTOPREMUTO$="d" Then Exit 
  7519.  If TASTOPREMUTO$="e" Then Exit 
  7520.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7521.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7522.  If TASTOPREMUTO$="k" Then Exit 
  7523.  If TASTOPREMUTO$="l" Then Exit 
  7524.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7525.  If TASTOPREMUTO$="p" Then Exit 
  7526.  If TASTOPREMUTO$="r" Then Exit 
  7527.  If TASTOPREMUTO$="s"
  7528.   Proc DAVARIABILIABANCO[False]
  7529.   If SENZAMEMORIA=False
  7530.    Proc DAVARIABILIABANCO[True]
  7531.    If SENZAMEMORIA=False
  7532.     Proc SALVAUNFILE
  7533.    End If 
  7534.   End If 
  7535.  End If 
  7536.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7537.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  7538.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  7539. Until TASTOPREMUTO$=Chr$(27)
  7540. End Proc
  7541. Procedure MOSTRAEDIFICIO
  7542. Cls 
  7543. If M0DIFICA=False
  7544.  Proc TIC[MESSAGGIO3$,0] : Print 
  7545. End If 
  7546. If EDIFICIO>-1
  7547.  Print "Edificio";EDIFICIO;":"
  7548.  Print "Nome>";NOMEE$(EDIFICIO)
  7549.  Print "Posizione>luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  7550.  Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  7551. Else 
  7552.  Print "Nessun edificio"
  7553. End If 
  7554. End Proc
  7555. Procedure MOSTRAILDESTINODELGIOCO
  7556. Shared TASTOPREMUTO$
  7557. MESSAGGIO2$="C -> carica un file di Adventures Conceiver...E -> mostra gli ed"
  7558. MESSAGGIO2$=MESSAGGIO2$+"ifici...G -> gioca un'avventura...I -> mostra le sta"
  7559. MESSAGGIO2$=MESSAGGIO2$+"nze dell'edificio corrente...K -> mostra le categori"
  7560. MESSAGGIO2$=MESSAGGIO2$+"e degli oggetti...L -> mostra i luoghi...M -> modifi"
  7561. MESSAGGIO2$=MESSAGGIO2$+"ca un'avventura...O -> mostra gli oggetti...P -> mos"
  7562. MESSAGGIO2$=MESSAGGIO2$+"tra i personaggi...R -> mostra le regioni...S -> sal"
  7563. MESSAGGIO2$=MESSAGGIO2$+"va un file di Adventures Conceiver...? -> mostra i m"
  7564. MESSAGGIO2$=MESSAGGIO2$+"eriti...Esc -> esci da Adventures Conceiver..."
  7565. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7566. Repeat 
  7567.  Proc SCOPODELGIOCO[True]
  7568.  Print "Nemici>";
  7569.  If ANEMICI=True Then Print "attivati" Else Print "disattivati"
  7570.  Print "Musica>";
  7571.  If _MUSICA=True Then Print "attivata" Else Print "disattivata"
  7572.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7573.  CARATTEREMESSAGGIO=0
  7574.  Repeat 
  7575.   TASTOPREMUTO$=Inkey$
  7576.   Proc MESSAGGIO[MESSAGGIO2$]
  7577.  Until TASTOPREMUTO$<>""
  7578.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7579.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7580.  If TASTOPREMUTO$="e" Then Exit 
  7581.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7582.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7583.  If TASTOPREMUTO$="k" Then Exit 
  7584.  If TASTOPREMUTO$="l" Then Exit 
  7585.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7586.  If TASTOPREMUTO$="o" Then Exit 
  7587.  If TASTOPREMUTO$="p" Then Exit 
  7588.  If TASTOPREMUTO$="r" Then Exit 
  7589.  If TASTOPREMUTO$="s"
  7590.   Proc DAVARIABILIABANCO[False]
  7591.   If SENZAMEMORIA=False
  7592.    Proc DAVARIABILIABANCO[True]
  7593.    If SENZAMEMORIA=False
  7594.     Proc SALVAUNFILE
  7595.    End If 
  7596.   End If 
  7597.  End If 
  7598.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7599. Until TASTOPREMUTO$=Chr$(27)
  7600. End Proc
  7601. Procedure MOSTRAILUOGHI
  7602. Shared TASTOPREMUTO$
  7603. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta luogo...C -> carica un fi"
  7604. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...D -> mostra il destino "
  7605. MESSAGGIO2$=MESSAGGIO2$+"(scopo) del gioco...E -> mostra gli edifici...G -> g"
  7606. MESSAGGIO2$=MESSAGGIO2$+"ioca un'avventura...I -> mostra le stanze dell'edifi"
  7607. MESSAGGIO2$=MESSAGGIO2$+"cio corrente...K -> mostra le categorie degli oggett"
  7608. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7609. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7610. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7611. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7612. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7613. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7614. Repeat 
  7615.  Proc MOSTRALUOGO
  7616.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7617.  CARATTEREMESSAGGIO=0
  7618.  Repeat 
  7619.   TASTOPREMUTO$=Inkey$
  7620.   Proc MESSAGGIO[MESSAGGIO2$]
  7621.  Until TASTOPREMUTO$<>""
  7622.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7623.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7624.  If TASTOPREMUTO$="d" Then Exit 
  7625.  If TASTOPREMUTO$="e" Then Exit 
  7626.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7627.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7628.  If TASTOPREMUTO$="k" Then Exit 
  7629.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7630.  If TASTOPREMUTO$="o" Then Exit 
  7631.  If TASTOPREMUTO$="p" Then Exit 
  7632.  If TASTOPREMUTO$="r" Then Exit 
  7633.  If TASTOPREMUTO$="s"
  7634.   Proc DAVARIABILIABANCO[False]
  7635.   If SENZAMEMORIA=False
  7636.    Proc DAVARIABILIABANCO[True]
  7637.    If SENZAMEMORIA=False
  7638.     Proc SALVAUNFILE
  7639.    End If 
  7640.   End If 
  7641.  End If 
  7642.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7643.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  7644.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  7645. Until TASTOPREMUTO$=Chr$(27)
  7646. End Proc
  7647. Procedure MOSTRAIPERSONAGGI
  7648. Shared TASTOPREMUTO$
  7649. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta personaggio...C -> carica"
  7650. MESSAGGIO2$=MESSAGGIO2$+" un file di Adventures Conceiver...D -> mostra il de"
  7651. MESSAGGIO2$=MESSAGGIO2$+"stino (scopo) del gioco...E -> mostra gli edifici..."
  7652. MESSAGGIO2$=MESSAGGIO2$+"G -> gioca un'avventura...I -> mostra le stanze dell"
  7653. MESSAGGIO2$=MESSAGGIO2$+"'edificio corrente...K -> mostra le categorie degli "
  7654. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7655. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...R -> mostra le r"
  7656. MESSAGGIO2$=MESSAGGIO2$+"egioni...S -> salva un file di Adventures Conceiver."
  7657. MESSAGGIO2$=MESSAGGIO2$+"..? -> mostra i meriti...Esc -> esci da Adventures C"
  7658. MESSAGGIO2$=MESSAGGIO2$+"onceiver..."
  7659. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7660. Repeat 
  7661.  Proc MOSTRAPERSONAGGIO
  7662.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7663.  CARATTEREMESSAGGIO=0
  7664.  Repeat 
  7665.   TASTOPREMUTO$=Inkey$
  7666.   Proc MESSAGGIO[MESSAGGIO2$]
  7667.  Until TASTOPREMUTO$<>""
  7668.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7669.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7670.  If TASTOPREMUTO$="d" Then Exit 
  7671.  If TASTOPREMUTO$="e" Then Exit 
  7672.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7673.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7674.  If TASTOPREMUTO$="k" Then Exit 
  7675.  If TASTOPREMUTO$="l" Then Exit 
  7676.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7677.  If TASTOPREMUTO$="o" Then Exit 
  7678.  If TASTOPREMUTO$="r" Then Exit 
  7679.  If TASTOPREMUTO$="s"
  7680.   Proc DAVARIABILIABANCO[False]
  7681.   If SENZAMEMORIA=False
  7682.    Proc DAVARIABILIABANCO[True]
  7683.    If SENZAMEMORIA=False
  7684.     Proc SALVAUNFILE
  7685.    End If 
  7686.   End If 
  7687.  End If 
  7688.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7689.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  7690.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  7691. Until TASTOPREMUTO$=Chr$(27)
  7692. End Proc
  7693. Procedure MOSTRALECATEGORIEDEGLIOGGETTI
  7694. Shared TASTOPREMUTO$
  7695. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta categoria...C -> carica u"
  7696. MESSAGGIO2$=MESSAGGIO2$+"n file di Adventures Conceiver...D -> mostra il dest"
  7697. MESSAGGIO2$=MESSAGGIO2$+"ino (scopo) del gioco...E -> mostra gli edifici...G "
  7698. MESSAGGIO2$=MESSAGGIO2$+"-> gioca un'avventura...I -> mostra le stanze dell'e"
  7699. MESSAGGIO2$=MESSAGGIO2$+"dificio corrente...L -> mostra i luoghi...M -> modif"
  7700. MESSAGGIO2$=MESSAGGIO2$+"ica un'avventura...O -> mostra gli oggetti...P -> mo"
  7701. MESSAGGIO2$=MESSAGGIO2$+"stra i personaggi...R -> mostra le regioni...S -> sa"
  7702. MESSAGGIO2$=MESSAGGIO2$+"lva un file di Adventures Conceiver...? -> mostra i "
  7703. MESSAGGIO2$=MESSAGGIO2$+"meriti...Esc -> esci da Adventures Conceiver..."
  7704. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7705. Repeat 
  7706.  Proc MOSTRACATEGORIADEGLIOGGETTI
  7707.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7708.  CARATTEREMESSAGGIO=0
  7709.  Repeat 
  7710.   TASTOPREMUTO$=Inkey$
  7711.   Proc MESSAGGIO[MESSAGGIO2$]
  7712.  Until TASTOPREMUTO$<>""
  7713.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7714.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7715.  If TASTOPREMUTO$="d" Then Exit 
  7716.  If TASTOPREMUTO$="e" Then Exit 
  7717.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7718.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7719.  If TASTOPREMUTO$="l" Then Exit 
  7720.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7721.  If TASTOPREMUTO$="o" Then Exit 
  7722.  If TASTOPREMUTO$="p" Then Exit 
  7723.  If TASTOPREMUTO$="r" Then Exit 
  7724.  If TASTOPREMUTO$="s"
  7725.   Proc DAVARIABILIABANCO[False]
  7726.   If SENZAMEMORIA=False
  7727.    Proc DAVARIABILIABANCO[True]
  7728.    If SENZAMEMORIA=False
  7729.     Proc SALVAUNFILE
  7730.    End If 
  7731.   End If 
  7732.  End If 
  7733.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7734.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  7735.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  7736. Until TASTOPREMUTO$=Chr$(27)
  7737. End Proc
  7738. Procedure MOSTRALEREGIONI
  7739. Shared TASTOPREMUTO$
  7740. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta regione...C -> carica un "
  7741. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7742. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7743. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7744. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7745. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi...M -> modifica un'avvent"
  7746. MESSAGGIO2$=MESSAGGIO2$+"ura...O -> mostra gli oggetti...P -> mostra i person"
  7747. MESSAGGIO2$=MESSAGGIO2$+"aggi...S -> salva un file di Adventures Conceiver..."
  7748. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7749. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7750. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7751. Repeat 
  7752.  Proc MOSTRAREGIONE
  7753.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7754.  CARATTEREMESSAGGIO=0
  7755.  Repeat 
  7756.   TASTOPREMUTO$=Inkey$
  7757.   Proc MESSAGGIO[MESSAGGIO2$]
  7758.  Until TASTOPREMUTO$<>""
  7759.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7760.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7761.  If TASTOPREMUTO$="d" Then Exit 
  7762.  If TASTOPREMUTO$="e" Then Exit 
  7763.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7764.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7765.  If TASTOPREMUTO$="k" Then Exit 
  7766.  If TASTOPREMUTO$="l" Then Exit 
  7767.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7768.  If TASTOPREMUTO$="o" Then Exit 
  7769.  If TASTOPREMUTO$="p" Then Exit 
  7770.  If TASTOPREMUTO$="s"
  7771.   Proc DAVARIABILIABANCO[False]
  7772.   If SENZAMEMORIA=False
  7773.    Proc DAVARIABILIABANCO[True]
  7774.    If SENZAMEMORIA=False
  7775.     Proc SALVAUNFILE
  7776.    End If 
  7777.   End If 
  7778.  End If 
  7779.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7780.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  7781.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  7782. Until TASTOPREMUTO$=Chr$(27)
  7783. End Proc
  7784. Procedure MOSTRALESTANZE
  7785. Shared TASTOPREMUTO$
  7786. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta stanza...C -> carica un f"
  7787. MESSAGGIO2$=MESSAGGIO2$+"ile di Adventures Conceiver...D -> mostra il destino"
  7788. MESSAGGIO2$=MESSAGGIO2$+" (scopo) del gioco...E -> mostra gli edifici...G -> "
  7789. MESSAGGIO2$=MESSAGGIO2$+"gioca un'avventura...K -> mostra le categorie degli "
  7790. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7791. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...P -> mostra i pe"
  7792. MESSAGGIO2$=MESSAGGIO2$+"rsonaggi...R -> mostra le regioni...S -> salva un fi"
  7793. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...? -> mostra i meriti..."
  7794. MESSAGGIO2$=MESSAGGIO2$+"Esc -> esci da Adventures Conceiver..."
  7795. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7796. Repeat 
  7797.  Proc MOSTRASTANZA
  7798.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7799.  CARATTEREMESSAGGIO=0
  7800.  Repeat 
  7801.   TASTOPREMUTO$=Inkey$
  7802.   Proc MESSAGGIO[MESSAGGIO2$]
  7803.  Until TASTOPREMUTO$<>""
  7804.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7805.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7806.  If TASTOPREMUTO$="d" Then Exit 
  7807.  If TASTOPREMUTO$="e" Then Exit 
  7808.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7809.  If TASTOPREMUTO$="k" Then Exit 
  7810.  If TASTOPREMUTO$="l" Then Exit 
  7811.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7812.  If TASTOPREMUTO$="o" Then Exit 
  7813.  If TASTOPREMUTO$="p" Then Exit 
  7814.  If TASTOPREMUTO$="r" Then Exit 
  7815.  If TASTOPREMUTO$="s"
  7816.   Proc DAVARIABILIABANCO[False]
  7817.   If SENZAMEMORIA=False
  7818.    Proc DAVARIABILIABANCO[True]
  7819.    If SENZAMEMORIA=False
  7820.     Proc SALVAUNFILE
  7821.    End If 
  7822.   End If 
  7823.  End If 
  7824.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7825.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  7826.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  7827. Until TASTOPREMUTO$=Chr$(27)
  7828. End Proc
  7829. Procedure MOSTRALUOGO
  7830. Cls 
  7831. If M0DIFICA=False
  7832.  Proc TIC[MESSAGGIO3$,0] : Print 
  7833. End If 
  7834. Print "Luogo";LUOGO;":"
  7835. Print "Nome>";NOMEL$(LUOGO)
  7836. Print "Regione di appartenenza>";NOMER$(REGIONEL(LUOGO))
  7837. Print "Tipo di luogo>";TIPOL$(TIPOL(LUOGO))
  7838. DREZIONE=DREZIONEL(0,LUOGO)
  7839. Print "Direzione Nord     >";
  7840. E=DREZIONE/$10000
  7841. If E>0
  7842.  S=DREZIONE mod $10000
  7843.  Print "edificio";E;" stanza";S
  7844. Else 
  7845.  DREZIONE=DREZIONE mod $10000
  7846.  If DREZIONE<$FFFF
  7847.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7848.  Else 
  7849.   Print "nessun luogo"
  7850.  End If 
  7851. End If 
  7852. DREZIONE=DREZIONEL(1,LUOGO)
  7853. Print "Direzione NordEst  >";
  7854. E=DREZIONE/$10000
  7855. If E>0
  7856.  S=DREZIONE mod $10000
  7857.  Print "edificio";E;" stanza";S
  7858. Else 
  7859.  DREZIONE=DREZIONE mod $10000
  7860.  If DREZIONE<$FFFF
  7861.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7862.  Else 
  7863.   Print "nessun luogo"
  7864.  End If 
  7865. End If 
  7866. DREZIONE=DREZIONEL(2,LUOGO)
  7867. Print "Direzione Est      >";
  7868. E=DREZIONE/$10000
  7869. If E>0
  7870.  S=DREZIONE mod $10000
  7871.  Print "edificio";E;" stanza";S
  7872. Else 
  7873.  DREZIONE=DREZIONE mod $10000
  7874.  If DREZIONE<$FFFF
  7875.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7876.  Else 
  7877.   Print "nessun luogo"
  7878.  End If 
  7879. End If 
  7880. DREZIONE=DREZIONEL(3,LUOGO)
  7881. Print "Direzione SudEst   >";
  7882. E=DREZIONE/$10000
  7883. If E>0
  7884.  S=DREZIONE mod $10000
  7885.  Print "edificio";E;" stanza";S
  7886. Else 
  7887.  DREZIONE=DREZIONE mod $10000
  7888.  If DREZIONE<$FFFF
  7889.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7890.  Else 
  7891.   Print "nessun luogo"
  7892.  End If 
  7893. End If 
  7894. DREZIONE=DREZIONEL(4,LUOGO)
  7895. Print "Direzione Sud      >";
  7896. E=DREZIONE/$10000
  7897. If E>0
  7898.  S=DREZIONE mod $10000
  7899.  Print "edificio";E;" stanza";S
  7900. Else 
  7901.  DREZIONE=DREZIONE mod $10000
  7902.  If DREZIONE<$FFFF
  7903.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7904.  Else 
  7905.   Print "nessun luogo"
  7906.  End If 
  7907. End If 
  7908. DREZIONE=DREZIONEL(5,LUOGO)
  7909. Print "Direzione SudOvest >";
  7910. E=DREZIONE/$10000
  7911. If E>0
  7912.  S=DREZIONE mod $10000
  7913.  Print "edificio";E;" stanza";S
  7914. Else 
  7915.  DREZIONE=DREZIONE mod $10000
  7916.  If DREZIONE<$FFFF
  7917.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7918.  Else 
  7919.   Print "nessun luogo"
  7920.  End If 
  7921. End If 
  7922. DREZIONE=DREZIONEL(6,LUOGO)
  7923. Print "Direzione Ovest    >";
  7924. E=DREZIONE/$10000
  7925. If E>0
  7926.  S=DREZIONE mod $10000
  7927.  Print "edificio";E;" stanza";S
  7928. Else 
  7929.  DREZIONE=DREZIONE mod $10000
  7930.  If DREZIONE<$FFFF
  7931.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7932.  Else 
  7933.   Print "nessun luogo"
  7934.  End If 
  7935. End If 
  7936. DREZIONE=DREZIONEL(7,LUOGO)
  7937. Print "Direzione NordOvest>";
  7938. E=DREZIONE/$10000
  7939. If E>0
  7940.  S=DREZIONE mod $10000
  7941.  Print "edificio";E;" stanza";S
  7942. Else 
  7943.  DREZIONE=DREZIONE mod $10000
  7944.  If DREZIONE<$FFFF
  7945.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7946.  Else 
  7947.   Print "nessun luogo"
  7948.  End If 
  7949. End If 
  7950. DREZIONE=DREZIONEL(8,LUOGO)
  7951. Print "Direzione Sopra    >";
  7952. E=DREZIONE/$10000
  7953. If E>0
  7954.  S=DREZIONE mod $10000
  7955.  Print "edificio";E;" stanza";S
  7956. Else 
  7957.  DREZIONE=DREZIONE mod $10000
  7958.  If DREZIONE<$FFFF
  7959.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7960.  Else 
  7961.   Print "nessun luogo"
  7962.  End If 
  7963. End If 
  7964. DREZIONE=DREZIONEL(9,LUOGO)
  7965. Print "Direzione Sotto    >";
  7966. E=DREZIONE/$10000
  7967. If E>0
  7968.  S=DREZIONE mod $10000
  7969.  Print "edificio";E;" stanza";S
  7970. Else 
  7971.  DREZIONE=DREZIONE mod $10000
  7972.  If DREZIONE<$FFFF
  7973.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7974.  Else 
  7975.   Print "nessun luogo"
  7976.  End If 
  7977. End If 
  7978. SOLDINELLUOGO=SOLDIL(LUOGO)
  7979. If SOLDINELLUOGO>0
  7980.  Print Str$(SOLDINELLUOGO)-" ";" ";
  7981.  If SOLDINELLUOGO=1
  7982.   Print "soldo"
  7983.  Else 
  7984.   Print "soldi"
  7985.  End If 
  7986. End If 
  7987. End Proc
  7988. Procedure MOSTRAMESSAGGIO[MESSAGGIO4$,MESSAGGIO5$]
  7989. Cls 
  7990. Proc TIC[MESSAGGIO4$,0] : Print : POSIZIONE=1
  7991. Repeat 
  7992.  SPAZIO=Instr(MESSAGGIO5$," ",POSIZIONE)
  7993.  If SPAZIO>0
  7994.   If X Curs+SPAZIO-POSIZIONE>79
  7995.    Print : X=0
  7996.    Proc FONDOSCHERMOGIOCO
  7997.   End If 
  7998.   Print Mid$(MESSAGGIO5$,POSIZIONE,SPAZIO-POSIZIONE+1);
  7999.   POSIZIONE=SPAZIO+1
  8000.  Else 
  8001.   Print Mid$(MESSAGGIO5$,POSIZIONE,Len(MESSAGGIO5$)-POSIZIONE+1)
  8002.  End If 
  8003. Until SPAZIO=0
  8004. If X Curs>0 or Y Curs>0
  8005.  Proc TIC["Premi un tasto...",ULTIMALINEA] : Wait Key 
  8006. End If 
  8007. End Proc
  8008. Procedure MOSTRAOGGETTO
  8009. Cls 
  8010. If M0DIFICA=False
  8011.  Proc TIC[MESSAGGIO3$,0] : Print 
  8012. End If 
  8013. Print "Oggetto";OGGETTO;":"
  8014. Print "Nome>";
  8015. If Btst(1,TIPOO(OGGETTO))=True
  8016.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  8017. Else 
  8018.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  8019. End If 
  8020. Print "Posizione>";
  8021. If POSIZIONEO(OGGETTO)<0
  8022.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  8023.  If Btst(0,TIPOO(OGGETTO))=True
  8024.   Print "posseduto dal personaggio";SOGGETTO;
  8025.   Print " nome>";NOMEP$(SOGGETTO)
  8026.  Else 
  8027.   Print "contenuto nell'oggetto";SOGGETTO;
  8028.   Print " nome>";
  8029.   If Btst(1,TIPOO(SOGGETTO))=True
  8030.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8031.   Else 
  8032.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8033.   End If 
  8034.  End If 
  8035. Else 
  8036.  Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  8037. End If 
  8038. If Btst(1,TIPOO(OGGETTO))=True
  8039.  PESOOGGETTO=PESORESTOCO(CATEGORIAO(OGGETTO))
  8040. Else 
  8041.  PESOOGGETTO=PESOCO(CATEGORIAO(OGGETTO))
  8042. End If 
  8043. Print "Peso>";Str$(PESOOGGETTO)-" ";" ";
  8044. If PESOOGGETTO=1
  8045.  Print "grammo"
  8046. Else 
  8047.  Print "grammi"
  8048. End If 
  8049. If Btst(3,TIPOO(OGGETTO))=True
  8050.  Print "Nascosto"
  8051. End If 
  8052. If Btst(1,TIPOO(OGGETTO))=True
  8053.  Print "Resto"
  8054. End If 
  8055. If Btst(2,TIPOO(OGGETTO))=True
  8056.  Print "Indossato dal personaggio";SOGGETTO;" nome>";NOMEP$(SOGGETTO)
  8057. End If 
  8058. End Proc
  8059. Procedure MOSTRAOGGETTOPERINSERIMENTO[P]
  8060. Repeat 
  8061.  Cls 
  8062.  Print "Nome del personaggio";P;">";NOMEP$(P)
  8063.  Print At(0,ULTIMALINEA-1);"Oggetto";CATEGORIA;">";NOMESCO$(CATEGORIA)
  8064.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli l'oggetto Spazio conferma",ULTIMALINEA]
  8065.  Repeat 
  8066.   TASTOPREMUTO$=Inkey$
  8067.  Until TASTOPREMUTO$<>""
  8068.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  8069.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  8070. Until TASTOPREMUTO$=" "
  8071. End Proc[CATEGORIA]
  8072. Procedure MOSTRAPERSONAGGIO
  8073. Cls 
  8074. If M0DIFICA=False
  8075.  Proc TIC[MESSAGGIO3$,0] : Print 
  8076. End If 
  8077. Print "Personaggio";PERSONAGGIO;
  8078. If PERSONAGGIO=0
  8079.  Print " (personaggio del giocatore):"
  8080. Else 
  8081.  Print ":"
  8082. End If 
  8083. Print "Nome>";NOMEP$(PERSONAGGIO)
  8084. Print "Posizione>";
  8085. If POSIZIONEP(PERSONAGGIO)<0
  8086.  SOGGETTO=-1-POSIZIONEP(PERSONAGGIO)
  8087.  If Btst(0,TIPOP(PERSONAGGIO))=True
  8088.   Print "trasportato dal personaggio";SOGGETTO;
  8089.   Print " nome>";NOMEP$(SOGGETTO)
  8090.  Else 
  8091.   Print "contenuto nell'oggetto";SOGGETTO;" nome>";
  8092.   If Btst(1,TIPOO(SOGGETTO))=True
  8093.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8094.   Else 
  8095.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8096.   End If 
  8097.  End If 
  8098. Else 
  8099.  If TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)>0
  8100.   Print "In cammino dal luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8101.   Print " al luogo";LUOGODIDESTINAZIONEP(PERSONAGGIO);" nome>";NOMEL$(LUOGODIDESTINAZIONEP(PERSONAGGIO))
  8102.  Else 
  8103.   E=POSIZIONEP(PERSONAGGIO)/$10000
  8104.   If E>0
  8105.    Print "Edificio";E-1;" nome>";NOMEE$(E-1)
  8106.    S=POSIZIONEP(PERSONAGGIO) mod $10000
  8107.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  8108.   Else 
  8109.    Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8110.   End If 
  8111.  End If 
  8112. End If 
  8113. Print "Costituzione>";Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  8114. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8115. Print "Destrezza>";Str$(DESTREZZAP(PERSONAGGIO))-" ";" ";
  8116. If DESTREZZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8117. Print "Forza>";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  8118. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8119. PESODELPERSONAGGIO=PESOP(PERSONAGGIO)+PESONETTOP(PERSONAGGIO)/1000
  8120. Print "Peso>";Str$(PESODELPERSONAGGIO)-" ";" ";
  8121. If PESODELPERSONAGGIO=1 Then Print "chilo" Else Print "chili"
  8122. Print "Peso netto>";
  8123. If PESONETTOP(PERSONAGGIO)>999
  8124.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)/1000
  8125.  Print Str$(PESOOEPDELP0)-" ";" ";
  8126.  If PESOOEPDELP0=1
  8127.   Print "chilo";
  8128.  Else 
  8129.   Print "chili";
  8130.  End If 
  8131.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO) mod 1000
  8132.  If PESOOEPDELP0>0
  8133.   Print " e";PESOOEPDELP0;" ";
  8134.   If PESOOEPDELP0=1
  8135.    Print "grammo"
  8136.   Else 
  8137.    Print "grammi"
  8138.   End If 
  8139.  Else 
  8140.   Print 
  8141.  End If 
  8142. Else 
  8143.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)
  8144.  Print Str$(PESOOEPDELP0)-" ";" ";
  8145.  If PESOOEPDELP0=1
  8146.   Print "grammo"
  8147.  Else 
  8148.   Print "grammi"
  8149.  End If 
  8150. End If 
  8151. Print "Resistenza>";Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  8152. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8153. Print "Sesso>";
  8154. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  8155. If PERSONAGGIO>0
  8156.  Print "Condizione>";
  8157.  If Btst(3,TIPOP(PERSONAGGIO))=True
  8158.   Print "Nemic";
  8159.  Else 
  8160.   Print "Amic";
  8161.  End If 
  8162.  If Btst(1,TIPOP(PERSONAGGIO))=True
  8163.   Print "a"
  8164.  Else 
  8165.   Print "o"
  8166.  End If 
  8167. End If 
  8168. Print "Soldi>";Str$(SOLDIP(PERSONAGGIO))-" ";" ";
  8169. If SOLDIP(PERSONAGGIO)=1 Then Print "soldo" Else Print "soldi"
  8170. If PERSONAGGIO>0
  8171.  Print "Inizio sonno>";
  8172.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  8173.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  8174.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  8175.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  8176.  Print "Durata sonno>";Str$(SONNOP(PERSONAGGIO))-" ";" ";
  8177.  If SONNOP(PERSONAGGIO)=1
  8178.   Print "minuto"
  8179.  Else 
  8180.   Print "minuti"
  8181.  End If 
  8182.  For A=0 To 7
  8183.   AZIONE=AZIONEP(A,PERSONAGGIO)
  8184.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  8185.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  8186.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  8187.   Cline : Print : Cline : Cmove ,-1
  8188.   Print "azione";A+1;">";
  8189.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  8190.   Proc FONDOSCHERMOEDITOR
  8191.  Next A
  8192. End If 
  8193. If Btst(2,TIPOP(PERSONAGGIO))=True
  8194.  Print "Sta dormendo"
  8195. End If 
  8196. End Proc
  8197. Procedure MOSTRAREGIONE
  8198. Cls 
  8199. If M0DIFICA=False
  8200.  Proc TIC[MESSAGGIO3$,0] : Print 
  8201. End If 
  8202. Print "Regione";REGIONE;":"
  8203. Print "Nome>";NOMER$(REGIONE)
  8204. End Proc
  8205. Procedure MOSTRASTANZA
  8206. Cls 
  8207. If M0DIFICA=False
  8208.  Proc TIC[MESSAGGIO3$,0] : Print 
  8209. End If 
  8210. Print "Edificio";EDIFICIO;":"
  8211. Print "Stanza";STANZA;":"
  8212. Print "Nome>";NOMES$(STANZA,EDIFICIO)
  8213. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  8214. Print "Direzione Nord     >";
  8215. E=DREZIONE/$10000
  8216. If E>0
  8217.  S=DREZIONE mod $10000
  8218.  Print "edificio";E;" stanza";S
  8219. Else 
  8220.  DREZIONE=DREZIONE mod $10000
  8221.  If DREZIONE<$FFFF
  8222.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8223.  Else 
  8224.   Print "nessun luogo"
  8225.  End If 
  8226. End If 
  8227. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  8228. Print "Direzione NordEst  >";
  8229. E=DREZIONE/$10000
  8230. If E>0
  8231.  S=DREZIONE mod $10000
  8232.  Print "edificio";E;" stanza";S
  8233. Else 
  8234.  DREZIONE=DREZIONE mod $10000
  8235.  If DREZIONE<$FFFF
  8236.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8237.  Else 
  8238.   Print "nessun luogo"
  8239.  End If 
  8240. End If 
  8241. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  8242. Print "Direzione Est      >";
  8243. E=DREZIONE/$10000
  8244. If E>0
  8245.  S=DREZIONE mod $10000
  8246.  Print "edificio";E;" stanza";S
  8247. Else 
  8248.  DREZIONE=DREZIONE mod $10000
  8249.  If DREZIONE<$FFFF
  8250.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8251.  Else 
  8252.   Print "nessun luogo"
  8253.  End If 
  8254. End If 
  8255. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  8256. Print "Direzione SudEst   >";
  8257. E=DREZIONE/$10000
  8258. If E>0
  8259.  S=DREZIONE mod $10000
  8260.  Print "edificio";E;" stanza";S
  8261. Else 
  8262.  DREZIONE=DREZIONE mod $10000
  8263.  If DREZIONE<$FFFF
  8264.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8265.  Else 
  8266.   Print "nessun luogo"
  8267.  End If 
  8268. End If 
  8269. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  8270. Print "Direzione Sud      >";
  8271. E=DREZIONE/$10000
  8272. If E>0
  8273.  S=DREZIONE mod $10000
  8274.  Print "edificio";E;" stanza";S
  8275. Else 
  8276.  DREZIONE=DREZIONE mod $10000
  8277.  If DREZIONE<$FFFF
  8278.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8279.  Else 
  8280.   Print "nessun luogo"
  8281.  End If 
  8282. End If 
  8283. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  8284. Print "Direzione SudOvest >";
  8285. E=DREZIONE/$10000
  8286. If E>0
  8287.  S=DREZIONE mod $10000
  8288.  Print "edificio";E;" stanza";S
  8289. Else 
  8290.  DREZIONE=DREZIONE mod $10000
  8291.  If DREZIONE<$FFFF
  8292.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8293.  Else 
  8294.   Print "nessun luogo"
  8295.  End If 
  8296. End If 
  8297. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  8298. Print "Direzione Ovest    >";
  8299. E=DREZIONE/$10000
  8300. If E>0
  8301.  S=DREZIONE mod $10000
  8302.  Print "edificio";E;" stanza";S
  8303. Else 
  8304.  DREZIONE=DREZIONE mod $10000
  8305.  If DREZIONE<$FFFF
  8306.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8307.  Else 
  8308.   Print "nessun luogo"
  8309.  End If 
  8310. End If 
  8311. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  8312. Print "Direzione NordOvest>";
  8313. E=DREZIONE/$10000
  8314. If E>0
  8315.  S=DREZIONE mod $10000
  8316.  Print "edificio";E;" stanza";S
  8317. Else 
  8318.  DREZIONE=DREZIONE mod $10000
  8319.  If DREZIONE<$FFFF
  8320.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8321.  Else 
  8322.   Print "nessun luogo"
  8323.  End If 
  8324. End If 
  8325. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  8326. Print "Direzione Sopra    >";
  8327. E=DREZIONE/$10000
  8328. If E>0
  8329.  S=DREZIONE mod $10000
  8330.  Print "edificio";E;" stanza";S
  8331. Else 
  8332.  DREZIONE=DREZIONE mod $10000
  8333.  If DREZIONE<$FFFF
  8334.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8335.  Else 
  8336.   Print "nessun luogo"
  8337.  End If 
  8338. End If 
  8339. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  8340. Print "Direzione Sotto    >";
  8341. E=DREZIONE/$10000
  8342. If E>0
  8343.  S=DREZIONE mod $10000
  8344.  Print "edificio";E;" stanza";S
  8345. Else 
  8346.  DREZIONE=DREZIONE mod $10000
  8347.  If DREZIONE<$FFFF
  8348.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8349.  Else 
  8350.   Print "nessun luogo"
  8351.  End If 
  8352. End If 
  8353. SOLDINELLASTANZA=SOLDIS(STANZA,EDIFICIO)
  8354. If SOLDINELLASTANZA>0
  8355.  Print Str$(SOLDINELLASTANZA)-" ";" ";
  8356.  If SOLDINELLASTANZA=1
  8357.   Print "soldo"
  8358.  Else 
  8359.   Print "soldi"
  8360.  End If 
  8361. End If 
  8362. End Proc
  8363. Procedure MUOVITI
  8364. If F0RZAP(0)+PESOP(0)/10>=PESONETTOP(0)/1000
  8365.  EDIFICIODOVESITROVAILPERSONAGGIO0=POSIZIONEP(0)/$10000
  8366.  If TEMP0DIATTRAVERSAMENTOP(0)=0 or EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8367.   Locate 0,ULTIMALINEA : Input "Dove vuoi andare ?>";DREZIONE$; : Curs Off 
  8368.   DREZIONE$=Lower$(DREZIONE$)
  8369.   If DREZIONE$<>""
  8370.    For A=0 To 9
  8371.     If DREZIONE$=Lower$(DREZIONEL$(A)) or DREZIONE$=Lower$(DREZIONE$(A))
  8372.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8373.       S=POSIZIONEP(0) mod $10000
  8374.       If DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0) mod $10000<$FFFF
  8375.        E=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)/$10000
  8376.        Exit 
  8377.       Else 
  8378.        DREZIONE$=Lower$(DREZIONE$(A))
  8379.       End If 
  8380.      Else 
  8381.       If DREZIONEL(A,POSIZIONEP(0)) mod $10000<$FFFF
  8382.        E=DREZIONEL(A,POSIZIONEP(0))/$10000
  8383.        Exit 
  8384.       Else 
  8385.        DREZIONE$=Lower$(DREZIONE$(A))
  8386.       End If 
  8387.      End If 
  8388.     End If 
  8389.    Next A
  8390.    If A<10
  8391.     If E>0
  8392.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8393.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8394.      Else 
  8395.       POSIZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8396.      End If 
  8397.     Else 
  8398.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8399.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8400.      Else 
  8401.       LUOGODIDESTINAZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8402.       CAMMINOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))
  8403.       If CAMMINOP(0)=0
  8404.        POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8405.        DREZIONEPRESAP(0)=-1
  8406.        DREZIONEOPPOSTAAQUELLAPRESAP(0)=-1
  8407.       Else 
  8408.        TEMP0DIATTRAVERSAMENTOP(0)=CAMMINOP(0)
  8409.        DREZIONEPRESAP(0)=A
  8410.        If DREZIONEPRESAP(0)=9
  8411.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=8
  8412.        Else If DREZIONEPRESAP(0)=8
  8413.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=9
  8414.        Else If DREZIONEPRESAP(0)<8 and DREZIONEPRESAP(0)>3
  8415.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)-4
  8416.        Else 
  8417.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)+4
  8418.        End If 
  8419.       End If 
  8420.      End If 
  8421.     End If 
  8422.     COMPIUTAAZIONE=1
  8423.     Print At(0,ULTIMALINEA);"Hai deciso di andare ";
  8424.     If A>7
  8425.      Print Lower$(DREZIONE$(A));
  8426.     Else 
  8427.      Print "a ";Lower$(DREZIONE$(A));
  8428.     End If 
  8429.    Else 
  8430.     A=False
  8431.     For B=0 To 9
  8432.      If DREZIONE$=Lower$(DREZIONEL$(B)) or DREZIONE$=Lower$(DREZIONE$(B))
  8433.       A=True
  8434.      End If 
  8435.     Next B
  8436.     If A=True
  8437.      Print At(0,ULTIMALINEA);"Non puoi andare ";
  8438.      If DREZIONE$="sopra" or DREZIONE$="sotto"
  8439.       Print DREZIONE$;
  8440.      Else 
  8441.       Print "a ";DREZIONE$;
  8442.      End If 
  8443.      Print " ";
  8444.      If _MUSICA=False
  8445.       Bell 1
  8446.      End If 
  8447.     Else 
  8448.      Print At(0,ULTIMALINEA);"Non so cosa sia ";DREZIONE$;"   ";
  8449.      If _MUSICA=False
  8450.       Bell 1
  8451.      End If 
  8452.     End If 
  8453.    End If 
  8454.    Proc _ASPETTA
  8455.   End If 
  8456.  Else 
  8457.   Print At(0,ULTIMALINEA);"Vuoi andare avanti (a) o tornare indietro (i) ?";
  8458.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  8459.   If SCELTA$="a"
  8460.    Dec TEMP0DIATTRAVERSAMENTOP(0)
  8461.    If TEMP0DIATTRAVERSAMENTOP(0)=0
  8462.     POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8463.     DREZIONEPRESAP(0)=-1
  8464.     Locate 0,ULTIMALINEA : Cline : Print "Sei arrivato a ";NOMEL$(POSIZIONEP(0));
  8465.    Else 
  8466.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di andare avanti";
  8467.    End If 
  8468.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8469.   Else If SCELTA$="i"
  8470.    Inc TEMP0DIATTRAVERSAMENTOP(0)
  8471.    If TEMP0DIATTRAVERSAMENTOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))+1
  8472.     Locate 0,ULTIMALINEA : Cline : Print "Sei tornato a ";NOMEL$(POSIZIONEP(0));
  8473.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8474.    Else 
  8475.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di tornare indietro";
  8476.    End If 
  8477.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8478.   End If 
  8479.  End If 
  8480. Else 
  8481.  Print At(0,ULTIMALINEA);"Sei troppo pesante, non puoi muoverti";
  8482.  If _MUSICA=False
  8483.   Bell 1
  8484.  End If 
  8485.  Proc _ASPETTA
  8486. End If 
  8487. End Proc
  8488. Procedure MUOVITIP[AZIONE,P]
  8489. If PERSONAGGIOVISIBILEP(P)=True Then PERSONAGGIOVISIBILE=True
  8490. If Btst(2,TIPOP(0))=False Then PERSONAGGIO0SVEGLIO=True
  8491. If F0RZAP(P)+PESOP(P)/10>=PESONETTOP(P)/1000
  8492.  EDIFICIODOVESITROVAILPERSONAGGIOP=POSIZIONEP(P)/$10000
  8493.  If TEMP0DIATTRAVERSAMENTOP(P)=0 or EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8494.   Do 
  8495.    DREZIONE=Rnd(9)
  8496.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8497.     S=POSIZIONEP(P) mod $10000
  8498.     E=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)/$10000
  8499.     Exit If DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP) mod $10000<$FFFF
  8500.    Else 
  8501.     E=DREZIONEL(DREZIONE,POSIZIONEP(P))/$10000
  8502.     Exit If DREZIONEL(DREZIONE,POSIZIONEP(P)) mod $10000<$FFFF
  8503.    End If 
  8504.   Loop 
  8505.   If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  8506.    Print NOMEP$(P);" sta andando ";
  8507.    If DREZIONE>7
  8508.     Print Lower$(DREZIONE$(DREZIONE))
  8509.    Else 
  8510.     Print "a ";Lower$(DREZIONE$(DREZIONE))
  8511.    End If 
  8512.    Proc FONDOSCHERMOGIOCO
  8513.   End If 
  8514.   If E>0
  8515.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8516.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8517.    Else 
  8518.     POSIZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8519.    End If 
  8520.    Proc PERSONAGGIOVISIBILE[P]
  8521.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8522.     Print NOMEP$(P);" ï¿½ arrivato"
  8523.    End If 
  8524.   Else 
  8525.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8526.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8527.    Else 
  8528.     LUOGODIDESTINAZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8529.     CAMMINOP(P)=PARATIPOL(TIPOL(POSIZIONEP(P)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(P)))
  8530.     If CAMMINOP(P)=0
  8531.      POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8532.      DREZIONEPRESAP(P)=-1
  8533.      DREZIONEOPPOSTAAQUELLAPRESAP(P)=-1
  8534.     Else 
  8535.      TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)
  8536.      DREZIONEPRESAP(P)=DREZIONE
  8537.      If DREZIONEPRESAP(P)=9
  8538.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=8
  8539.      Else If DREZIONEPRESAP(P)=8
  8540.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=9
  8541.      Else If DREZIONEPRESAP(P)<8 and DREZIONEPRESAP(P)>3
  8542.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)-4
  8543.      Else 
  8544.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)+4
  8545.      End If 
  8546.     End If 
  8547.    End If 
  8548.    Proc PERSONAGGIOVISIBILE[P]
  8549.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8550.     Print NOMEP$(P);" ï¿½ arrivato"
  8551.    End If 
  8552.   End If 
  8553.  Else 
  8554. 'Fare DREZIONE=Rnd(1) per far muovere avanti o indietro i personaggi 
  8555.   DREZIONE=1
  8556.   If DREZIONE=1
  8557.    Dec TEMP0DIATTRAVERSAMENTOP(P)
  8558.    If TEMP0DIATTRAVERSAMENTOP(P)=0
  8559.     POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8560.     DREZIONEPRESAP(P)=-1
  8561.     If PERSONAGGIO0SVEGLIO=True
  8562.      If PERSONAGGIOVISIBILE=True
  8563.       Print NOMEP$(P);" sta andando avanti"
  8564.       Proc FONDOSCHERMOGIOCO
  8565.      Else 
  8566.       Proc PERSONAGGIOVISIBILE[P]
  8567.       If PERSONAGGIOVISIBILEP(P)=True
  8568.        Print NOMEP$(P);" ï¿½ arrivato"
  8569.       End If 
  8570.       Proc FONDOSCHERMOGIOCO
  8571.      End If 
  8572.     End If 
  8573.    Else 
  8574.     If PERSONAGGIO0SVEGLIO=True
  8575.      If PERSONAGGIOVISIBILE=True
  8576.       Print NOMEP$(P);" sta andando avanti"
  8577.       Proc FONDOSCHERMOGIOCO
  8578.      Else 
  8579.       Proc PERSONAGGIOVISIBILE[P]
  8580.       If PERSONAGGIOVISIBILEP(P)=True
  8581.        Print NOMEP$(P);" ï¿½ arrivato"
  8582.       End If 
  8583.       Proc FONDOSCHERMOGIOCO
  8584.      End If 
  8585.     End If 
  8586.    End If 
  8587.   Else 
  8588.    Inc TEMP0DIATTRAVERSAMENTOP(P)
  8589.    If TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)+1
  8590.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8591.     DREZIONEPRESAP(P)=-1
  8592.     If PERSONAGGIO0SVEGLIO=True
  8593.      If PERSONAGGIOVISIBILE=True
  8594.       Print NOMEP$(P);" sta tornando indietro"
  8595.       Proc FONDOSCHERMOGIOCO
  8596.      Else 
  8597.       Proc PERSONAGGIOVISIBILE[P]
  8598.       If PERSONAGGIOVISIBILEP(P)=True
  8599.        Print NOMEP$(P);" ï¿½ arrivato"
  8600.       End If 
  8601.       Proc FONDOSCHERMOGIOCO
  8602.      End If 
  8603.     End If 
  8604.    Else 
  8605.     If PERSONAGGIO0SVEGLIO=True
  8606.      If PERSONAGGIOVISIBILE=True
  8607.       Print NOMEP$(P);" sta tornando indietro"
  8608.       Proc FONDOSCHERMOGIOCO
  8609.      Else 
  8610.       Proc PERSONAGGIOVISIBILE[P]
  8611.       If PERSONAGGIOVISIBILEP(P)=True
  8612.        Print NOMEP$(P);" ï¿½ arrivato"
  8613.       End If 
  8614.       Proc FONDOSCHERMOGIOCO
  8615.      End If 
  8616.     End If 
  8617.    End If 
  8618.   End If 
  8619.  End If 
  8620. Else 
  8621.  If PERSONAGGIOVISIBILE=True
  8622.   Print NOMEP$(P);" ï¿½ troppo pesante, non pu� muoversi"
  8623.   Proc FONDOSCHERMOGIOCO
  8624.  End If 
  8625. End If 
  8626. End Proc
  8627. Procedure NEMICI[P]
  8628. DIFESA=-1
  8629. For A=0 To NUMEROO
  8630.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  8631.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  8632.    DIFESA=CATEGORIAO(A) : VLOREDIFESA=PARATIPOCO(DIFESA)
  8633.    Exit 
  8634.   End If 
  8635.  End If 
  8636. Next A
  8637. OGGETTOOFFENSIVO=-1
  8638. For A=0 To NUMEROO
  8639.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and Btst(6,TIPOCO(CATEGORIAO(A)))=True
  8640.   VLORE1OFFENSIVITA=PARATIPOCO(CATEGORIAO(A))
  8641.   If VLORE1OFFENSIVITA>VLORE0OFFENSIVITA
  8642.    OGGETTOOFFENSIVO=CATEGORIAO(A) : VLORE0OFFENSIVITA=VLORE1OFFENSIVITA
  8643.   End If 
  8644.  End If 
  8645. Next A
  8646. NEMICI=Min(10,Rnd(TEMP0TRASCORSO/1440)+1)
  8647. NOMENEMICI=Rnd(27)
  8648. If P=0 Then Cls 
  8649. Gosub NEMICI
  8650. Gosub SCELTASUINEMICI
  8651. Inc DESTREZZAP(P)
  8652. Pop Proc
  8653. COMBATTIMENTOCONINEMICI:
  8654. If P=0
  8655.  NUMEROCOMBATTIMENTO=1
  8656.  Repeat 
  8657.   Cls 
  8658.   Proc TIC["********** Combattimento numero"+Str$(NUMEROCOMBATTIMENTO)+" **********",0]
  8659.   Print 
  8660.   Gosub TURNODEINEMICI
  8661.   If OGGETTOOFFENSIVO>-1
  8662.    OFFENSIVITA=PARATIPOCO(OGGETTOOFFENSIVO)*5
  8663.   End If 
  8664.   Add OFFENSIVITA,DESTREZZAP(0)
  8665.   Add OFFENSIVITA,F0RZAP(0)
  8666.   OFFENSIVITA=OFFENSIVITA/100
  8667.   Proc LIMITI[OFFENSIVITA,1,NEMICI] : OFFENSIVITA=Param
  8668.   Print "Hai ucciso";OFFENSIVITA;" ";
  8669.   If OFFENSIVITA=1
  8670.    Print NOMESN$(NOMENEMICI);
  8671.   Else 
  8672.    Print NOMEPN$(NOMENEMICI);
  8673.   End If 
  8674.   Print " ";
  8675.   If OGGETTOOFFENSIVO>-1
  8676.    Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8677.   Else 
  8678.    Print "a mani nude";
  8679.   End If 
  8680.   Print "."
  8681.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8682.   Add NEMICI,-OFFENSIVITA
  8683.   If NEMICI=0
  8684.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8685.   Else 
  8686.    Gosub SCELTADOPOILCOMBATTIMENTO
  8687.   End If 
  8688.   Inc NUMEROCOMBATTIMENTO
  8689.  Until NEMICI=0
  8690. Else 
  8691.  Print NOMEP$(P);" sta combattendo contro";NEMICI;" ";
  8692.  If NEMICI=1
  8693.   Print NOMESN$(NOMENEMICI)
  8694.  Else 
  8695.   Print NOMEPN$(NOMENEMICI)
  8696.  End If 
  8697.  Proc FONDOSCHERMOGIOCO
  8698. End If 
  8699. Return 
  8700. NEMICI:
  8701. If P=0
  8702.  If INEMICITISVEGLIANO=True
  8703.   If NEMICI=1
  8704.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ha";
  8705.   Else 
  8706.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti hanno";
  8707.   End If 
  8708.   Print " svegliato."
  8709.  Else 
  8710.   If NEMICI=1
  8711.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ostacola";
  8712.   Else 
  8713.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti ostacolano";
  8714.   End If 
  8715.   Print " il cammino."
  8716.  End If 
  8717. Else 
  8718.  If INEMICISVEGLIANOPERSONAGGIOP=True
  8719.   If NEMICI=1
  8720.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ha svegliato ";NOMEP$(P)
  8721.   Else 
  8722.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che hanno svegliato ";NOMEP$(P)
  8723.   End If 
  8724.  Else 
  8725.   If NEMICI=1
  8726.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ostacola il cammino a ";NOMEP$(P)
  8727.   Else 
  8728.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" ostacolano il cammino a ";NOMEP$(P)
  8729.   End If 
  8730.  End If 
  8731.  Proc FONDOSCHERMOGIOCO
  8732. End If 
  8733. Return 
  8734. MOSTRALARESISTENZADELPERSONAGGIOP:
  8735. If P=0
  8736.  RESISTENZAP(0)=Max(RESISTENZAP(0),0)
  8737.  Print "La tua resistenza ï¿½ a";RESISTENZAP(0);" punt";
  8738.  If RESISTENZAP(0)=1
  8739.   Print "o"
  8740.  Else 
  8741.   Print "i"
  8742.  End If 
  8743. Else 
  8744.  Print "La resistenza di ";NOMEP$(P);" ï¿½ a";RESISTENZAP(0);" punt";
  8745.  If RESISTENZAP(0)=1
  8746.   Print "o"
  8747.  Else 
  8748.   Print "i"
  8749.  End If 
  8750.  Proc FONDOSCHERMOGIOCO
  8751. End If 
  8752. Return 
  8753. SCELTASUINEMICI:
  8754. If RESISTENZAP(P)=0 Then Pop 
  8755. If P=0
  8756.  Repeat 
  8757.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8758.   SCELTA$=Input$(1)
  8759.  Until SCELTA$="c" or SCELTA$="f"
  8760.  If SCELTA$="c"
  8761.   Gosub COMBATTIMENTOCONINEMICI
  8762.  Else 
  8763.   Gosub TENTALAFUGADAINEMICI
  8764.  End If 
  8765.  If COMBATTIMENTOCONINEMICI=True
  8766.   Gosub COMBATTIMENTOCONINEMICI
  8767.  End If 
  8768. Else 
  8769.  SCELTA=Rnd(1)
  8770.  If SCELTA=1
  8771.   Gosub COMBATTIMENTOCONINEMICI
  8772.  Else 
  8773.   Gosub TENTALAFUGADAINEMICI
  8774.  End If 
  8775. End If 
  8776. Return 
  8777. SCELTADOPOILCOMBATTIMENTO:
  8778. If RESISTENZAP(P)=0 Then Pop 
  8779. If P=0
  8780.  Repeat 
  8781.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8782.   SCELTA$=Input$(1)
  8783.  Until SCELTA$="c" or SCELTA$="f"
  8784.  If SCELTA$="f"
  8785.   Gosub TENTALAFUGADAINEMICI
  8786.  End If 
  8787. Else 
  8788.  SCELTA=Rnd(1)
  8789.  If SCELTA=1
  8790.   Gosub TENTALAFUGADAINEMICI
  8791.  End If 
  8792. End If 
  8793. Return 
  8794. TENTALAFUGADAINEMICI:
  8795. DESTREZZA=Rnd(99)+1
  8796. If P=0
  8797.  If DESTREZZA<=DESTREZZAP(0)
  8798.   Cls 
  8799.   Print "La tua destrezza non ï¿½ stata sufficiente per evitare lo scontro!"
  8800.   Gosub TURNODEINEMICI
  8801.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8802.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8803.   COMBATTIMENTOCONINEMICI=True
  8804.  Else 
  8805.   Cls 
  8806.   Print "Grazie alla tua destrezza hai evitato lo scontro."
  8807.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8808.   Pop Proc
  8809.  End If 
  8810. Else 
  8811.  If DESTREZZA<=DESTREZZAP(P)
  8812.   Print "La destrezza di ";NOMEP$(P);" non ï¿½ stata sufficiente per evitare lo scontro!"
  8813.   Gosub TURNODEINEMICI
  8814.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8815.   COMBATTIMENTOCONINEMICI=True
  8816.  Else 
  8817.   Print "Grazie alla sua destrezza ";NOMEP$(P);" ha evitato lo scontro."
  8818.   Pop Proc
  8819.  End If 
  8820.  Proc FONDOSCHERMOGIOCO
  8821. End If 
  8822. Return 
  8823. TURNODEINEMICI:
  8824. If P=0
  8825.  For A=1 To NEMICI
  8826.   NEMICO$=NOMESN$(NOMENEMICI)
  8827.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8828.   Print NEMICO$;A;
  8829.   DESTREZZA=Rnd(99)+1
  8830.   If DESTREZZA<=DESTREZZAP(0)
  8831.    Print " ha cercato di colpirti, ma tu hai";
  8832.    M0DODESTREZZA=Rnd(1)
  8833.    If M0DODESTREZZA=1
  8834.     Print " schivato";
  8835.    Else 
  8836.     Print " parato";
  8837.    End If 
  8838.    Print " il colpo."
  8839.   Else 
  8840.    If DIFESA>-1
  8841.     DIFESAVALIDA=Rnd(1)
  8842.     If DIFESAVALIDA=1
  8843.      Print " ti ha colpito, ma 1 ";NOMESCO$(DIFESA);" ti ha difes";
  8844.      If Btst(1,TIPOP(0))=True
  8845.       Print "a";
  8846.      Else 
  8847.       Print "o";
  8848.      End If 
  8849.      Print "."
  8850.     Else 
  8851.      Print " ti ha colpito e ti ha fatto una ferita!"
  8852.      FERITA=-(Rnd(2)+1)
  8853.      Add RESISTENZAP(0),FERITA
  8854.     End If 
  8855.    Else 
  8856.     Print " ti ha colpito e ti ha fatto una ferita!"
  8857.     FERITA=-(Rnd(2)+1)
  8858.     Add RESISTENZAP(0),FERITA
  8859.    End If 
  8860.   End If 
  8861.  Next A
  8862. Else 
  8863.  For A=1 To NEMICI
  8864.   NEMICO$=NOMESN$(NOMENEMICI)
  8865.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8866.   Print NEMICO$;A;
  8867.   DESTREZZA=Rnd(99)+1
  8868.   If DESTREZZA<=DESTREZZAP(P)
  8869.    Print " ha cercato di colpire ";NOMEP$(P);", ma ";
  8870.    If Btst(1,TIPOP(0))=True
  8871.     Print "lei";
  8872.    Else 
  8873.     Print "lui";
  8874.    End If 
  8875.    Print " ha ";
  8876.    M0DODESTREZZA=Rnd(1)
  8877.    If M0DODESTREZZA=1
  8878.     Print "schivato";
  8879.    Else 
  8880.     Print "parato";
  8881.    End If 
  8882.    Print " il colpo."
  8883.   Else 
  8884.    If DIFESA>-1
  8885.     DIFESAVALIDA=Rnd(1)
  8886.     If DIFESAVALIDA=1
  8887.      Print " ha colpito ";NOMEP$(P);", ma 1 ";NOMESCO$(DIFESA);" l'ha difes";
  8888.      If Btst(1,TIPOP(0))=True
  8889.       Print "a";
  8890.      Else 
  8891.       Print "o";
  8892.      End If 
  8893.      Print "."
  8894.     Else 
  8895.      Print " ha colpito ";NOMEP$(P);" e ";
  8896.      If Btst(1,TIPOP(0))=True
  8897.       Print "le";
  8898.      Else 
  8899.       Print "gli";
  8900.      End If 
  8901.      Print " ha fatto una ferita!"
  8902.      FERITA=-(Rnd(2)+1)
  8903.      Add RESISTENZAP(0),FERITA
  8904.     End If 
  8905.    Else 
  8906.     Print " ha colpito ";NOMEP$(P);" e ";
  8907.      If Btst(1,TIPOP(0))=True
  8908.       Print "le";
  8909.      Else 
  8910.       Print "gli";
  8911.      End If 
  8912.     Print " ha fatto una ferita!"
  8913.     FERITA=-(Rnd(2)+1)
  8914.     Add RESISTENZAP(0),FERITA
  8915.    End If 
  8916.   End If 
  8917.   Proc FONDOSCHERMOGIOCO
  8918.  Next A
  8919. End If 
  8920. Return 
  8921. End Proc
  8922. Procedure OGGETTI[M0DO]
  8923. For A=0 To NUMEROCO
  8924.  OGGETTINELLUOGO(A)=0
  8925.  RESTINELLUOGO(A)=0
  8926. Next A
  8927. For A=0 To NUMEROO
  8928.  If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  8929.   If Btst(1,TIPOO(A))=True
  8930.    Inc RESTINELLUOGO(CATEGORIAO(A))
  8931.   Else 
  8932.    Inc OGGETTINELLUOGO(CATEGORIAO(A))
  8933.   End If 
  8934.  End If 
  8935. Next A
  8936. If M0DO=True
  8937.  For A=0 To NUMEROCO
  8938.   If OGGETTINELLUOGO(A)>0
  8939.    OGGETTIVISIBILI=True
  8940.   End If 
  8941.   If RESTINELLUOGO(A)>0
  8942.    OGGETTIVISIBILI=True
  8943.   End If 
  8944.  Next A
  8945.  SOLDINELLUOGO=SOLDIL(POSIZIONEP(0))
  8946.  If SOLDINELLUOGO>0
  8947.   OGGETTIVISIBILI=True
  8948.  End If 
  8949.  If OGGETTIVISIBILI=True
  8950.   Print "Oggetti visibili>"
  8951.   Proc FONDOSCHERMOGIOCO
  8952.   For A=0 To NUMEROCO
  8953.    If OGGETTINELLUOGO(A)>0
  8954.     Print Str$(OGGETTINELLUOGO(A))-" ";" ";
  8955.     If OGGETTINELLUOGO(A)=1
  8956.      Print NOMESCO$(A)
  8957.     Else 
  8958.      Print NOMEPCO$(A)
  8959.     End If 
  8960.     Proc FONDOSCHERMOGIOCO
  8961.    End If 
  8962.    If RESTINELLUOGO(A)>0
  8963.     Print Str$(RESTINELLUOGO(A))-" ";" ";
  8964.     If RESTINELLUOGO(A)=1
  8965.      Print NOMESRO$(A)
  8966.     Else 
  8967.      Print NOMEPRO$(A)
  8968.     End If 
  8969.    Proc FONDOSCHERMOGIOCO
  8970.    End If 
  8971.   Next A
  8972.   If SOLDINELLUOGO>0
  8973.    Print Str$(SOLDINELLUOGO)-" ";" ";
  8974.    If SOLDINELLUOGO=1
  8975.     Print "soldo"
  8976.    Else 
  8977.     Print "soldi"
  8978.    End If 
  8979.    Proc FONDOSCHERMOGIOCO
  8980.   End If 
  8981.  Else 
  8982.   Print "Nessun oggetto visibile"
  8983.  End If 
  8984. End If 
  8985. End Proc
  8986. Procedure OGGETTOOPERSONAGGIOSUCUIUSARE[O]
  8987. For A=0 To NUMEROCO
  8988.  If OGGETTINELLUOGO(A)>0
  8989.   Inc CATEGORIEOGGETTI
  8990.  End If 
  8991.  If RESTINELLUOGO(A)>0
  8992.   Inc CATEGORIEOGGETTI
  8993.  End If 
  8994. Next A
  8995. For A=0 To NUMEROP
  8996.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  8997.   Inc PERSONAGGI
  8998.  End If 
  8999. Next A
  9000. If CATEGORIEOGGETTI>0 and PERSONAGGI>0
  9001.  Print At(0,ULTIMALINEA);"Vuoi usare su un oggetto o su un personaggio (o/p) ?>";
  9002.  OGGETTOOPERSONAGGIO$=Input$(1)
  9003.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9004.  If OGGETTOOPERSONAGGIO$="o"
  9005.   Proc USASUUNOGGETTO[O]
  9006.  Else If OGGETTOOPERSONAGGIO$="p"
  9007.   Proc USASUUNPERSONAGGIO[O]
  9008.   End If 
  9009. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0
  9010.  Proc USASUUNOGGETTO[O]
  9011. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0
  9012.  Proc USASUUNPERSONAGGIO[O]
  9013. Else 
  9014.  Print At(0,ULTIMALINEA);"Non ci sono oggetti o personaggi su cui usare 1 ";
  9015.  If Btst(1,TIPOO(O))=True
  9016.   Print NOMESRO$(CATEGORIAO(O));
  9017.  Else 
  9018.   Print NOMESCO$(CATEGORIAO(O));
  9019.  End If 
  9020.  If _MUSICA=False
  9021.   Bell 1
  9022.  End If 
  9023.  Proc _ASPETTA
  9024. End If 
  9025. End Proc
  9026. Procedure PERSONAGGI
  9027. For A=1 To NUMEROP
  9028.  Proc PERSONAGGIOVISIBILE[A]
  9029.  If PERSONAGGIOVISIBILEP(A)=True Then PERSONAGGIVISIBILI=True
  9030. Next A
  9031. If PERSONAGGIVISIBILI=True
  9032.  Print "Personaggi visibili>"
  9033.  Proc FONDOSCHERMOGIOCO
  9034.  For A=1 To NUMEROP
  9035.   If PERSONAGGIOVISIBILEP(A)=True
  9036.    If RESISTENZAP(A)=0
  9037.     Print "Il cadavere di ";NOMEP$(A);
  9038.     If Btst(1,TIPOP(A))=True
  9039.      Print "@"
  9040.     Else 
  9041.      Print 
  9042.     End If 
  9043.    Else 
  9044.     Print NOMEP$(A);
  9045.     If Btst(1,TIPOP(A))=True
  9046.      Print "@";
  9047.     End If 
  9048.     If Btst(2,TIPOP(A))=True
  9049.      Print " dormiente"
  9050.     Else 
  9051.      Print 
  9052.     End If 
  9053.    End If 
  9054.   End If 
  9055.  Proc FONDOSCHERMOGIOCO
  9056.  Next A
  9057. Else 
  9058.  Print "Nessun personaggio visibile"
  9059. End If 
  9060. End Proc
  9061. Procedure PERSONAGGIORICEVENTE[TIPO$,NUMERO]
  9062. For A=1 To NUMEROP
  9063.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIPRESENTI
  9064. Next A
  9065. If PERSONAGGIPRESENTI>1
  9066.  Locate 0,ULTIMALINEA : Input "A chi vuoi dare ?>";PERSONAGGIO$;
  9067.  Curs Off 
  9068.  If PERSONAGGIO$<>""
  9069.   For A=1 To NUMEROP
  9070.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A))
  9071.     If TIPO$="O"
  9072.      POSIZIONEO(NUMERO)=-1-A
  9073.      If Btst(1,TIPOO(NUMERO))=True
  9074.       Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9075.       Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9076.       Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9077.      Else 
  9078.       Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9079.       Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9080.       Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9081.       Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9082.      End If 
  9083.      If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9084.       For B=0 To NUMEROO
  9085.        If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9086.         If Btst(1,TIPOO(B))=True
  9087.          Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(B))
  9088.          Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(B))
  9089.         Else 
  9090.          Add PESONETTOP(0),-PESOCO(CATEGORIAO(B))
  9091.          Add PESONETTOP(A),PESOCO(CATEGORIAO(B))
  9092.         End If 
  9093.        End If 
  9094.       Next B
  9095.       For B=1 To NUMEROP
  9096.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9097.         Add PESONETTOP(0),-PESOP(B)*1000
  9098.         Add PESONETTOP(0),-PESONETTOP(B)
  9099.         Add PESONETTOP(A),PESOP(B)*1000
  9100.         Add PESONETTOP(A),PESONETTOP(B)
  9101.        End If 
  9102.       Next B
  9103.      End If 
  9104.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9105.      Print "Hai deciso di dare 1 ";
  9106.      If Btst(1,TIPOO(NUMERO))=True
  9107.       Print NOMESRO$(CATEGORIAO(NUMERO));
  9108.      Else 
  9109.       Print NOMESCO$(CATEGORIAO(NUMERO));
  9110.      End If 
  9111.     Else If TIPO$="P"
  9112.      POSIZIONEP(NUMERO)=-1-A
  9113.      Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9114.      Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9115.      Add PESONETTOP(A),PESOP(NUMERO)*1000
  9116.      Add PESONETTOP(A),PESONETTOP(NUMERO)
  9117.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9118.      Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9119.     Else If TIPO$="S"
  9120.      Add SOLDIP(A),NUMERO
  9121.      Add SOLDIRICEVUTIP(A),NUMERO
  9122.      Add PESONETTOP(0),-NUMERO*PESOS
  9123.      Add PESONETTOP(A),NUMERO*PESOS
  9124.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9125.      Print "Hai deciso di dare";NUMERO;
  9126.      If NUMERO=1
  9127.       Print " soldo";
  9128.      Else 
  9129.       Print " soldi";
  9130.      End If 
  9131.     End If 
  9132.     Print " a ";NOMEP$(A);
  9133.     Proc _ASPETTA
  9134.     Exit 
  9135.    End If 
  9136.   Next A
  9137.   If A=NUMEROP+1
  9138.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9139.    If _MUSICA=False
  9140.     Bell 1
  9141.    End If 
  9142.    Proc _ASPETTA
  9143.   End If 
  9144.  End If 
  9145. Else 
  9146.  For A=1 To NUMEROP
  9147.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9148.    If TIPO$="O"
  9149.     POSIZIONEO(NUMERO)=-1-A
  9150.     If Btst(1,TIPOO(NUMERO))=True
  9151.      Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9152.      Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9153.      Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9154.     Else 
  9155.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9156.      Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9157.      Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9158.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9159.     End If 
  9160.     If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9161.      For B=0 To NUMEROO
  9162.       If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9163.        If Btst(1,TIPOO(B))=True
  9164.         Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
  9165.        Else 
  9166.         Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
  9167.        End If 
  9168.       End If 
  9169.      Next B
  9170.      For B=1 To NUMEROP
  9171.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9172.        Add PESONETTOP(A),-PESOP(B)*1000
  9173.        Add PESONETTOP(A),-PESONETTOP(B)
  9174.       End If 
  9175.      Next B
  9176.     End If 
  9177.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9178.     Print "Hai deciso di dare 1 ";
  9179.     If Btst(1,TIPOO(NUMERO))=True
  9180.      Print NOMESRO$(CATEGORIAO(NUMERO));
  9181.     Else 
  9182.      Print NOMESCO$(CATEGORIAO(NUMERO));
  9183.     End If 
  9184.    Else If TIPO$="P"
  9185.     POSIZIONEP(NUMERO)=-1-A
  9186.     Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9187.     Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9188.     Add PESONETTOP(A),PESOP(NUMERO)*1000
  9189.     Add PESONETTOP(A),PESONETTOP(NUMERO)
  9190.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9191.     Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9192.    Else If TIPO$="S"
  9193.     Add SOLDIP(A),NUMERO
  9194.     Add SOLDIRICEVUTIP(A),NUMERO
  9195.     Add PESONETTOP(0),-NUMERO*PESOS
  9196.     Add PESONETTOP(A),NUMERO*PESOS
  9197.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9198.     Print "Hai deciso di dare";NUMERO;
  9199.     If NUMERO=1
  9200.      Print " soldo";
  9201.     Else 
  9202.      Print " soldi";
  9203.     End If 
  9204.    End If 
  9205.    Print " a ";NOMEP$(A);
  9206.    Proc _ASPETTA
  9207.   End If 
  9208.  Next A
  9209. End If 
  9210. End Proc
  9211. Procedure PERSONAGGIOVISIBILE[P]
  9212. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9213.  PERSONAGGIOVISIBILEP(P)=True
  9214. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  9215.  PERSONAGGIOVISIBILEP(P)=True
  9216. Else 
  9217.  PERSONAGGIOVISIBILEP(P)=False
  9218. End If 
  9219. End Proc
  9220. Procedure PRENDI
  9221. If TEMP0DIATTRAVERSAMENTOP(0)>0
  9222.  For A=1 To NUMEROP
  9223.   If PERSONAGGIOVISIBILEP(A)=True
  9224.    Inc PERSONAGGI
  9225.   End If 
  9226.  Next A
  9227.  If PERSONAGGI>0
  9228.   Proc PRENDIUNPERSONAGGIO
  9229.  Else 
  9230.   Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
  9231.   If _MUSICA=False
  9232.    Bell 1
  9233.   End If 
  9234.   Proc _ASPETTA
  9235.   Pop Proc
  9236.  End If 
  9237. Else 
  9238.  For A=1 To NUMEROP
  9239.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9240.    Inc PERSONAGGI
  9241.   End If 
  9242.  Next A
  9243. End If 
  9244. For A=0 To NUMEROCO
  9245.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9246.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9247. Next A
  9248. If SOLDIL(POSIZIONEP(0))>0
  9249.  SOLDI=True
  9250. End If 
  9251. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  9252.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  9253.  OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  9254.  OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  9255.  If OGGETTOPERSONAGGIOOSOLDI$="o"
  9256.   Proc PRENDIUNOGGETTO
  9257.  Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  9258.   Proc PRENDIUNPERSONAGGIO
  9259.  Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  9260.   Proc PRENDIDEISOLDI
  9261.  End If 
  9262. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  9263.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto o dei soldi (o/s) ?>";
  9264.  OGGETTOOSOLDI$=Input$(1)
  9265.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  9266.  If OGGETTOOSOLDI$="o"
  9267.   Proc PRENDIUNOGGETTO
  9268.  Else If OGGETTOOSOLDI$="s"
  9269.   Proc PRENDIDEISOLDI
  9270.  End If 
  9271. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  9272.  Print At(0,ULTIMALINEA);"Vuoi prendere un personaggio o dei soldi (p/s) ?>";
  9273.  PERSONAGGIOOSOLDI$=Input$(1)
  9274.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  9275.  If PERSONAGGIOOSOLDI$="p"
  9276.   Proc PRENDIUNPERSONAGGIO
  9277.  Else If PERSONAGGIOOSOLDI$="s"
  9278.   Proc PRENDIDEISOLDI
  9279.  End If 
  9280. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  9281.  Proc PRENDIDEISOLDI
  9282. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  9283.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto od un personaggio (o/p) ?>";
  9284.  OGGETTOOPERSONAGGIO$=Input$(1)
  9285.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9286.  If OGGETTOOPERSONAGGIO$="o"
  9287.   Proc PRENDIUNOGGETTO
  9288.  Else If OGGETTOOPERSONAGGIO$="p"
  9289.   Proc PRENDIUNPERSONAGGIO
  9290.  End If 
  9291. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  9292.  Proc PRENDIUNOGGETTO
  9293. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  9294.  Proc PRENDIUNPERSONAGGIO
  9295. Else 
  9296.  Print At(0,ULTIMALINEA);"Non ci sono oggetti,personaggi o soldi da prendere";
  9297.  If _MUSICA=False
  9298.   Bell 1
  9299.  End If 
  9300.  Proc _ASPETTA
  9301. End If 
  9302. End Proc
  9303. Procedure PRENDIAO[AZIONE,P]
  9304. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9305. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9306. For A=0 To NUMEROO
  9307.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9308.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9309.   B=A
  9310.  End If 
  9311. Next A
  9312. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9313.  Pop Proc
  9314. End If 
  9315. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9316.  A=B
  9317. Else 
  9318.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9319.  B=0
  9320.  For A=0 To NUMEROO
  9321.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9322.    OGGETTODELPERSONAGGIOP(B)=A
  9323.    Inc B
  9324.   End If 
  9325.  Next A
  9326.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9327. End If 
  9328. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9329. If Btst(1,TIPOO(A))=True
  9330.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9331. Else 
  9332.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9333. End If 
  9334. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9335.  For B=0 To NUMEROO
  9336.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9337.    If Btst(1,TIPOO(B))=True
  9338.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9339.    Else 
  9340.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9341.    End If 
  9342.   End If 
  9343.  Next B
  9344.  For B=1 To NUMEROP
  9345.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9346.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9347.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9348.   End If 
  9349.  Next B
  9350. End If 
  9351. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9352.  Print NOMEP$(P);" prende 1 ";
  9353.  If Btst(1,TIPOO(A))=True
  9354.   Print NOMESRO$(CATEGORIAO(A))
  9355.  Else 
  9356.   Print NOMESCO$(CATEGORIAO(A))
  9357.  End If 
  9358. End If 
  9359. Dec PARAAAZIONEP(AZIONE,P)
  9360. If PARAAAZIONEP(AZIONE,P)=0
  9361.  FINEA(AZIONE,P)=True
  9362. End If 
  9363. End Proc
  9364. Procedure PRENDIAOB[AZIONE,P]
  9365. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9366. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9367. For A=0 To NUMEROO
  9368.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9369.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9370.   B=A
  9371.  End If 
  9372. Next A
  9373. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9374.  Pop Proc
  9375. End If 
  9376. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9377.  A=B
  9378. Else 
  9379.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9380.  B=0
  9381.  For A=0 To NUMEROO
  9382.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9383.    OGGETTODELPERSONAGGIOP(B)=A
  9384.    Inc B
  9385.   End If 
  9386.  Next A
  9387.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9388. End If 
  9389. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9390. If Btst(1,TIPOO(A))=True
  9391.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9392. Else 
  9393.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9394. End If 
  9395. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9396.  For B=0 To NUMEROO
  9397.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9398.    If Btst(1,TIPOO(B))=True
  9399.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9400.    Else 
  9401.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9402.    End If 
  9403.   End If 
  9404.  Next B
  9405.  For B=1 To NUMEROP
  9406.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9407.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9408.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9409.   End If 
  9410.  Next B
  9411. End If 
  9412. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9413.  Print NOMEP$(P);" prende 1 ";
  9414.  If Btst(1,TIPOO(A))=True
  9415.   Print NOMESRO$(CATEGORIAO(A))
  9416.  Else 
  9417.   Print NOMESCO$(CATEGORIAO(A))
  9418.  End If 
  9419. End If 
  9420. Dec PARAAAZIONEP(AZIONE,P)
  9421. If PARAAAZIONEP(AZIONE,P)=0
  9422.  FINEA(AZIONE,P)=True
  9423. End If 
  9424. End Proc
  9425. Procedure PRENDIAOTB[AZIONE,P]
  9426. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9427. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9428. For A=0 To NUMEROO
  9429.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9430.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9431.   B=A
  9432.  End If 
  9433. Next A
  9434. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9435.  Pop Proc
  9436. End If 
  9437. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9438.  A=B
  9439. Else 
  9440.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9441.  B=0
  9442.  For A=0 To NUMEROO
  9443.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9444.    OGGETTODELPERSONAGGIOP(B)=A
  9445.    Inc B
  9446.   End If 
  9447.  Next A
  9448.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9449. End If 
  9450. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9451. If Btst(1,TIPOO(A))=True
  9452.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9453. Else 
  9454.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9455. End If 
  9456. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9457.  For B=0 To NUMEROO
  9458.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9459.    If Btst(1,TIPOO(B))=True
  9460.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9461.    Else 
  9462.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9463.    End If 
  9464.   End If 
  9465.  Next B
  9466.  For B=1 To NUMEROP
  9467.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9468.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9469.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9470.   End If 
  9471.  Next B
  9472. End If 
  9473. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9474.  Print NOMEP$(P);" prende 1 ";
  9475.  If Btst(1,TIPOO(A))=True
  9476.   Print NOMESRO$(CATEGORIAO(A))
  9477.  Else 
  9478.   Print NOMESCO$(CATEGORIAO(A))
  9479.  End If 
  9480. End If 
  9481. Dec PARAAAZIONEP(AZIONE,P)
  9482. If PARAAAZIONEP(AZIONE,P)=0
  9483.  FINEA(AZIONE,P)=True
  9484. End If 
  9485. End Proc
  9486. Procedure PRENDIAP[AZIONE,P]
  9487. For A=1 To NUMEROP
  9488.  If POSIZIONEP(A)=POSIZIONEP(P) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(P) and DREZIONEPRESAP(A)=DREZIONEPRESAP(P)
  9489.   POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9490.   Add PESONETTOP(P),PESOP(A)*1000
  9491.   Add PESONETTOP(P),PESONETTOP(A)
  9492.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9493.    Print NOMEP$(P);" prende ";NOMEP$(A)
  9494.   End If 
  9495.   Dec PARABAZIONEP(AZIONE,P)
  9496.   If PARABAZIONEP(AZIONE,P)=0
  9497.    FINEA(AZIONE,P)=True
  9498.   End If 
  9499.   Exit 
  9500.  End If 
  9501. Next A
  9502. End Proc
  9503. Procedure PRENDIDEISOLDI
  9504. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi prendere (0-"+Str$(SOLDIL(POSIZIONEP(0)))-" "+") ?>";SOLDI$;
  9505. Curs Off 
  9506. If SOLDI$<>""
  9507.  SOLDI=Val(SOLDI$)
  9508.  Proc LIMITI[SOLDI,0,SOLDIL(POSIZIONEP(0))] : SOLDI=Param
  9509.  If SOLDI>0
  9510.   Add SOLDIP(0),SOLDI
  9511.   Add SOLDIL(POSIZIONEP(0)),-SOLDI
  9512.   Add PESONETTOP(0),SOLDI*PESOS
  9513.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9514.   Print "Hai deciso di prendere";SOLDI;
  9515.   If SOLDI=1
  9516.    Print " soldo";
  9517.   Else 
  9518.    Print " soldi";
  9519.   End If 
  9520.   Proc _ASPETTA
  9521.  End If 
  9522. End If 
  9523. End Proc
  9524. Procedure PRENDIPA[AZIONE,P]
  9525. A=PARAAAZIONEP(AZIONE,P)
  9526. If POSIZIONEP(A)=POSIZIONEP(P)
  9527.  POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9528.  Add PESONETTOP(P),PESOP(A)*1000
  9529.  Add PESONETTOP(P),PESONETTOP(A)
  9530.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9531.   Print NOMEP$(P);" prende ";NOMEP$(A)
  9532.  End If 
  9533.  FINEA(AZIONE,P)=True
  9534. End If 
  9535. End Proc
  9536. Procedure PRENDIUNOGGETTO
  9537. For A=0 To NUMEROCO
  9538.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9539.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9540. Next A
  9541. If CATEGORIEOGGETTI>0
  9542.  If CATEGORIEOGGETTI>1
  9543.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi prendere ?>";OGGETTO$;
  9544.   Curs Off 
  9545.   If OGGETTO$<>""
  9546.    For A=0 To NUMEROO
  9547.     If POSIZIONEO(A)=POSIZIONEP(0)
  9548.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  9549.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9550.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", ï¿½ residente";
  9551.        If _MUSICA=False
  9552.         Bell 1
  9553.        End If 
  9554.       Else 
  9555.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9556.        Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9557.        Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9558.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9559.         For B=0 To NUMEROO
  9560.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9561.           If Btst(1,TIPOO(B))=True
  9562.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9563.           Else 
  9564.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9565.           End If 
  9566.          End If 
  9567.         Next B
  9568.         For B=1 To NUMEROP
  9569.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9570.           Add PESONETTOP(0),PESOP(B)*1000
  9571.           Add PESONETTOP(0),PESONETTOP(B)
  9572.          End If 
  9573.         Next B
  9574.        End If 
  9575.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9576.        Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
  9577.       End If 
  9578.       Proc _ASPETTA : Exit 
  9579.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  9580.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9581.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", ï¿½ residente";
  9582.        If _MUSICA=False
  9583.         Bell 1
  9584.        End If 
  9585.       Else 
  9586.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9587.        Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9588.        Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
  9589.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9590.         For B=0 To NUMEROO
  9591.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9592.           If Btst(1,TIPOO(B))=True
  9593.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9594.           Else 
  9595.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9596.           End If 
  9597.          End If 
  9598.         Next B
  9599.         For B=1 To NUMEROP
  9600.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9601.           Add PESONETTOP(0),PESOP(B)*1000
  9602.           Add PESONETTOP(0),PESONETTOP(B)
  9603.          End If 
  9604.         Next B
  9605.        End If 
  9606.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9607.        Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
  9608.       End If 
  9609.       Proc _ASPETTA : Exit 
  9610.      End If 
  9611.     End If 
  9612.    Next A
  9613.    If A=NUMEROO+1
  9614.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  9615.     If _MUSICA=False
  9616.      Bell 1
  9617.     End If 
  9618.     Proc _ASPETTA
  9619.    End If 
  9620.   End If 
  9621.  Else 
  9622.   For A=0 To NUMEROO
  9623.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9624.     POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9625.     If Btst(1,TIPOO(A))=True
  9626.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9627.     Else 
  9628.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9629.     End If 
  9630.     Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9631.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9632.      For B=0 To NUMEROO
  9633.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9634.        If Btst(1,TIPOO(B))=True
  9635.         Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9636.        Else 
  9637.         Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9638.        End If 
  9639.       End If 
  9640.      Next B
  9641.      For B=1 To NUMEROP
  9642.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9643.        Add PESONETTOP(0),PESOP(B)*1000
  9644.        Add PESONETTOP(0),PESONETTOP(B)
  9645.       End If 
  9646.      Next B
  9647.     End If 
  9648.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9649.     Print "Hai deciso di prendere 1 ";
  9650.     If Btst(1,TIPOO(A))=True
  9651.      Print NOMESRO$(CATEGORIAO(A));
  9652.     Else 
  9653.      Print NOMESCO$(CATEGORIAO(A));
  9654.     End If 
  9655.     Proc _ASPETTA : Exit 
  9656.    End If 
  9657.   Next A
  9658.  End If 
  9659. End If 
  9660. End Proc
  9661. Procedure PRENDIUNPERSONAGGIO
  9662. For A=1 To NUMEROP
  9663.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
  9664. Next A
  9665. If PERSONAGGI>0
  9666.  If PERSONAGGI>1
  9667.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
  9668.   Curs Off 
  9669.   If PERSONAGGIO$<>""
  9670.    For A=1 To NUMEROP
  9671.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9672.      POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9673.      Add PESONETTOP(0),PESOP(A)*1000
  9674.      Add PESONETTOP(0),PESONETTOP(A)
  9675.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9676.      Print "Hai deciso di prendere ";NOMEP$(A);
  9677.      Proc _ASPETTA : Exit 
  9678.     End If 
  9679.    Next A
  9680.    If A=NUMEROP+1
  9681.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9682.     If _MUSICA=False
  9683.      Bell 1
  9684.     End If 
  9685.     Proc _ASPETTA
  9686.    End If 
  9687.   End If 
  9688.  Else 
  9689.   For A=1 To NUMEROP
  9690.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9691.     POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9692.     Add PESONETTOP(0),PESOP(A)*1000
  9693.     Add PESONETTOP(0),PESONETTOP(A)
  9694.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9695.     Print "Hai deciso di prendere ";NOMEP$(A);
  9696.     Proc _ASPETTA : Exit 
  9697.    End If 
  9698.   Next A
  9699.  End If 
  9700. End If 
  9701. End Proc
  9702. Procedure SALVAUNFILE
  9703. Show On : Cls 
  9704. FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
  9705. If Len(FILE$)>0
  9706.  If Upper$(Right$(FILE$,4))<>".ADV"
  9707.   FILE$=FILE$+".Adv"
  9708.  End If 
  9709.  Proc TIC["Sto salvando il file",ULTIMALINEA-1]
  9710.  Proc TIC[FILE$,ULTIMALINEA]
  9711.  Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
  9712. End If 
  9713. Erase BANCO
  9714. Hide On 
  9715. End Proc
  9716. Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
  9717. SCOPODELGIOCO=AZIONEP(7,0)
  9718. PARA=PARAAAZIONEP(7,0)
  9719. PARB=PARABAZIONEP(7,0)
  9720. PARC=PARACAZIONEP(7,0)
  9721. Cls 
  9722. If NUOVOSCOPODELGIOCO=True
  9723.  If M0DIFICA=False
  9724.   Proc TIC[MESSAGGIO3$,0] : Print 
  9725.  End If 
  9726.  Print "Scopo del gioco>";
  9727.  If SCOPODELGIOCO=0
  9728.   Print "nessuno"
  9729.  Else If SCOPODELGIOCO=1
  9730.   Print "Dai a ";NOMEP$(PARA);PARB;" ";
  9731.   If PARB=1
  9732.    Print NOMESCO$(PARC)
  9733.   Else 
  9734.    Print NOMEPCO$(PARC)
  9735.   End If 
  9736.  Else If SCOPODELGIOCO=2
  9737.   Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
  9738.   If PARB=1
  9739.    Print "o ";
  9740.   Else 
  9741.    Print "i ";
  9742.   End If 
  9743.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9744.  Else If SCOPODELGIOCO=3
  9745.   Print "Dai a ";NOMEP$(PARA);PARB;" sold";
  9746.   If PARB=1
  9747.    Print "o"
  9748.   Else 
  9749.    Print "i"
  9750.   End If 
  9751.  Else If SCOPODELGIOCO=4
  9752.   Print "Guadagna";PARA;" sold";
  9753.   If PARA=1
  9754.    Print "o"
  9755.   Else 
  9756.    Print "i"
  9757.   End If 
  9758.  Else If SCOPODELGIOCO=5
  9759.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
  9760.   If PARB=1
  9761.    Print NOMESCO$(PARC)
  9762.   Else 
  9763.    Print NOMEPCO$(PARC)
  9764.   End If 
  9765.  Else If SCOPODELGIOCO=6
  9766.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
  9767.   If PARB=1
  9768.    Print "o ";
  9769.   Else 
  9770.    Print "i ";
  9771.   End If 
  9772.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9773.  Else If SCOPODELGIOCO=7
  9774.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
  9775.   If PARB=1
  9776.    Print "o"
  9777.   Else 
  9778.    Print "i"
  9779.   End If 
  9780.  Else If SCOPODELGIOCO=8
  9781.   Print "Prendi";PARA;" ";
  9782.   If PARA=1
  9783.    Print NOMESCO$(PARB)
  9784.   Else 
  9785.    Print NOMEPCO$(PARB)
  9786.   End If 
  9787.  Else If SCOPODELGIOCO=9
  9788.   Print "Prendi";PARA;" oggett";
  9789.   If PARA=1
  9790.    Print "o ";
  9791.   Else 
  9792.    Print "i ";
  9793.   End If 
  9794.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9795.  Else If SCOPODELGIOCO=10
  9796.   Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9797.  Else If SCOPODELGIOCO=11
  9798.   Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9799.  Else If SCOPODELGIOCO=12
  9800.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
  9801.  Else If SCOPODELGIOCO=13
  9802.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
  9803.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9804.  Else If SCOPODELGIOCO=14
  9805.   Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
  9806.  Else If SCOPODELGIOCO=15
  9807.   Print "Usa 1 oggetto ";
  9808.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9809.   Print Space$(17);"su 1 ";NOMESCO$(PARB)
  9810.  Else If SCOPODELGIOCO=16
  9811.   Print "Usa 1 oggetto ";
  9812.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9813.   Print Space$(17);"su 1 oggetto ";
  9814.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9815.  Else If SCOPODELGIOCO=17
  9816.   Print "Usa 1 oggetto ";
  9817.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9818.   Print Space$(17);"su ";NOMEP$(PARB)
  9819.  Else If SCOPODELGIOCO=18
  9820.   Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
  9821.  End If 
  9822. Else 
  9823.  If NUOVOSCOPODELGIOCO=1
  9824. 'Dai al personaggio PARA PARB oggetti PARC 
  9825.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9826.   If PERSONAGGIOACUIDARE$<>""
  9827.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9828.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9829.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9830.    If NUMEROOGGETTIDADARE$<>""
  9831.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9832.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9833.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9834.    End If 
  9835.   End If 
  9836.  Else If NUOVOSCOPODELGIOCO=2
  9837. 'Dai al personaggio PARA PARB oggetti di tipo PARC 
  9838.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9839.   If PERSONAGGIOACUIDARE$<>""
  9840.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9841.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9842.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9843.    If NUMEROOGGETTIDADARE$<>""
  9844.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9845.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9846.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9847.    End If 
  9848.   End If 
  9849.  Else If NUOVOSCOPODELGIOCO=3
  9850. 'Dai al personaggio PARA PARB soldi
  9851.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9852.   If PERSONAGGIOACUIDARE$<>""
  9853.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9854.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9855.    Locate 0,ULTIMALINEA : Input "Quanti soldi gli devi dare (1-65535) ?>";SOLDIDADARE$
  9856.    If SOLDIDADARE$<>""
  9857.     SOLDIDADARE=Val(SOLDIDADARE$)
  9858.     Proc LIMITI[SOLDIDADARE,1,65535] : PARB=Param
  9859.    End If 
  9860.   End If 
  9861.  Else If NUOVOSCOPODELGIOCO=4
  9862. 'Guadagna PARA soldi 
  9863.   Locate 0,ULTIMALINEA : Input "Quanti soldi devi guadagnare (1-65535) ?>";SOLDIDAGUADAGNARE$
  9864.   If SOLDIDAGUADAGNARE$<>""
  9865.    SOLDIDAGUADAGNARE=Val(SOLDIDAGUADAGNARE$)
  9866.    Proc LIMITI[SOLDIDAGUADAGNARE,1,65535] : PARA=Param
  9867.   End If 
  9868.  Else If NUOVOSCOPODELGIOCO=5
  9869. 'Lascia nel luogo PARA PARB oggetti PARC 
  9870.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9871.   If LUOGOINCUILASCIARE$<>""
  9872.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9873.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9874.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi lasciare (1-65535) ?>";NUMEROOGGETTIDALASCIARE$
  9875.    If NUMEROOGGETTIDALASCIARE$<>""
  9876.     NUMEROOGGETTIDALASCIARE=Val(NUMEROOGGETTIDALASCIARE$)
  9877.     Proc LIMITI[NUMEROOGGETTIDALASCIARE,1,65535] : PARB=Param
  9878.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9879.    End If 
  9880.   End If 
  9881.  Else If NUOVOSCOPODELGIOCO=6
  9882. 'Lascia nel luogo PARA PARB oggetti di tipo PARC 
  9883.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9884.   If LUOGOINCUILASCIARE$<>""
  9885.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9886.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9887.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9888.    If NUMEROOGGETTIDADARE$<>""
  9889.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9890.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9891.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9892.    End If 
  9893.   End If 
  9894.  Else If NUOVOSCOPODELGIOCO=7
  9895. 'Lascia nel luogo PARA PARB soldi
  9896.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9897.   If LUOGOINCUILASCIARE$<>""
  9898.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9899.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9900.    Locate 0,ULTIMALINEA : Input "Quanti soldi ci devi lasciare (1-65535) ?>";SOLDIDALASCIARE$
  9901.    If SOLDIDALASCIARE$<>""
  9902.     SOLDIDALASCIARE=Val(SOLDIDALASCIARE$)
  9903.     Proc LIMITI[SOLDIDALASCIARE,1,65535] : PARB=Param
  9904.    End If 
  9905.   End If 
  9906.  Else If NUOVOSCOPODELGIOCO=8
  9907. 'Prendi PARA oggetti PARB
  9908.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9909.   If NUMEROOGGETTIDAPRENDERE$<>""
  9910.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9911.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9912.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9913.   End If 
  9914.  Else If NUOVOSCOPODELGIOCO=9
  9915. 'Prendi PARA oggetti di tipo PARB
  9916.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9917.   If NUMEROOGGETTIDAPRENDERE$<>""
  9918.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9919.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9920.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9921.   End If 
  9922.  Else If NUOVOSCOPODELGIOCO=10
  9923. 'Trova il personaggio PARA 
  9924.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi trovare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODATROVARE$
  9925.   If PERSONAGGIODATROVARE$<>""
  9926.    PERSONAGGIODATROVARE=Val(PERSONAGGIODATROVARE$)
  9927.    Proc LIMITI[PERSONAGGIODATROVARE,1,NUMEROP] : PARA=Param
  9928.   End If 
  9929.  Else If NUOVOSCOPODELGIOCO=11
  9930. 'Uccidi il personaggio PARA  
  9931.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi uccidere (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODAUCCIDERE$
  9932.   If PERSONAGGIODAUCCIDERE$<>""
  9933.    PERSONAGGIODAUCCIDERE=Val(PERSONAGGIODAUCCIDERE$)
  9934.    Proc LIMITI[PERSONAGGIODAUCCIDERE,1,NUMEROP] : PARA=Param
  9935.   End If 
  9936.  Else If NUOVOSCOPODELGIOCO=12
  9937. 'Usa un'oggetto PARA su un'oggetto PARB
  9938.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9939.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9940.  Else If NUOVOSCOPODELGIOCO=13
  9941. 'Usa un'oggetto PARA su un'oggetto di tipo PARB
  9942.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9943.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9944.  Else If NUOVOSCOPODELGIOCO=14
  9945. 'Usa un'oggetto PARA sul personaggio PARB
  9946.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9947.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9948.   If PERSONAGGIOSUCUIUSARE$<>""
  9949.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9950.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9951.   End If 
  9952.  Else If NUOVOSCOPODELGIOCO=15
  9953. 'Usa un'oggetto di tipo PARA su un'oggetto PARB
  9954.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9955.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9956.  Else If NUOVOSCOPODELGIOCO=16
  9957. 'Usa un'oggetto di tipo PARA su un'oggetto di tipo PARB
  9958.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9959.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9960.  Else If NUOVOSCOPODELGIOCO=17
  9961. 'Usa 1 oggetto di tipo PARA sul personaggio PARB 
  9962.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9963.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9964.   If PERSONAGGIOSUCUIUSARE$<>""
  9965.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9966.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9967.   End If 
  9968.  Else If NUOVOSCOPODELGIOCO=18
  9969. 'Vai nel luogo PARA
  9970.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi andare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUIANDARE$
  9971.   If LUOGOINCUIANDARE$<>""
  9972.    LUOGOINCUIANDARE=Val(LUOGOINCUIANDARE$)
  9973.    Proc LIMITI[LUOGOINCUIANDARE,0,NUMEROL] : PARA=Param
  9974.   End If 
  9975.  End If 
  9976.  AZIONEP(7,0)=NUOVOSCOPODELGIOCO
  9977.  PARAAAZIONEP(7,0)=PARA
  9978.  PARABAZIONEP(7,0)=PARB
  9979.  PARACAZIONEP(7,0)=PARC
  9980. End If 
  9981. Curs Off 
  9982. End Proc
  9983. Procedure SEGUI[AZIONE,P]
  9984. End Proc
  9985. Procedure SEGUIPA[AZIONE,P]
  9986. End Proc
  9987. Procedure SETTASCHERMO
  9988. Hide On 
  9989. If Ntsc Then LUNGHEZZASCHERMO=208 Else LUNGHEZZASCHERMO=264
  9990. ULTIMALINEA=LUNGHEZZASCHERMO/8-2
  9991. Screen Open 0,640,LUNGHEZZASCHERMO,2,Hires : Curs Off : Flash Off 
  9992. Palette $60,$CCC : Pen 1 : Paper 0 : Ink 1,0
  9993. Set Curs 170,85,170,85,170,85,170,85
  9994. Wait Vbl : Limit Mouse 
  9995. End Proc
  9996. Procedure SUONAUNMODULO[M0DO]
  9997. If M0DO=True
  9998.  Show On 
  9999.  NOMEMODULO$=Fsel$("**","","Carica un modulo sonoro da ascoltare")
  10000.  If NOMEMODULO$<>""
  10001.   Track Loop Of : Track Stop 
  10002.   Track Load NOMEMODULO$,BANCOMODULO
  10003.   Track Play BANCOMODULO : Track Loop On 
  10004.  End If 
  10005.  Hide On 
  10006. Else 
  10007.  M0DULO=Rnd(92)+1
  10008.  If M0DULO=93
  10009.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/Beacand.mod")
  10010.   If M0DULOPRESENTE=True
  10011.    Track Load "Lavoro:Musica/Modules/Beacand.mod",BANCOMODULO
  10012.   End If 
  10013.  Else If M0DULO=92
  10014.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/ANewJob.mod")
  10015.   If M0DULOPRESENTE=True
  10016.    Track Load "Lavoro:Musica/Modules/ANewJob.mod",BANCOMODULO
  10017.   End If 
  10018.  Else 
  10019.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/mod."+Str$(M0DULO)-" ")
  10020.   If M0DULOPRESENTE=True
  10021.    Track Load "Lavoro:Musica/Modules/mod."+Str$(M0DULO)-" ",BANCOMODULO
  10022.   End If 
  10023.  End If 
  10024.  If M0DULOPRESENTE=True
  10025.   Track Loop Of : Track Stop 
  10026.   Track Play BANCOMODULO : Track Loop On 
  10027.  End If 
  10028. End If 
  10029. End Proc[NOMEMODULO$]
  10030. Procedure TEMP0
  10031. Print "Tempo trascorso>";
  10032. If M0DOVISUALIZZAZIONETEMPO=True
  10033.  GIORNI=TEMP0TRASCORSO/1440 : Print Str$(GIORNI)-" ";
  10034.  If GIORNI=1
  10035.   Print " giorno"; Else Print " giorni";
  10036.  End If 
  10037.  _ORE=TEMP0TRASCORSO/60 mod 24 : Print _ORE;
  10038.  If _ORE=1
  10039.   Print " ora"; Else Print " ore";
  10040.  End If 
  10041.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  10042.  If M1NUTI=1
  10043.   Print " minuto" Else Print " minuti"
  10044.  End If 
  10045. Else 
  10046.  GIORNI=TEMP0TRASCORSO/1440 : Print "Giorni";GIORNI;
  10047.  _ORE=TEMP0TRASCORSO/60 mod 24
  10048.  Print Using " #";_ORE/10; Using "#";_ORE mod 10;
  10049.  M1NUTI=TEMP0TRASCORSO mod 60
  10050.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  10051. End If 
  10052. End Proc
  10053. Procedure TIC[TESTO$,LINEA]
  10054. '-> Testo Invertito e Centrato by Stefano Regattin 
  10055. 'i> 23 maggio 1996 
  10056. 'm> 25 maggio 1996 
  10057. '--------------------------------------------------------------------------- 
  10058. 'LINEA contiene il numero di linea dove si posizioner� il testo; se vale -1
  10059. ' (True) il testo sar� posizionato alla linea dove si trova il cursore; in 
  10060. ' questo caso sar� necessario un comando Print per spostare il cursore 
  10061. '----------------------------------------------------------------------
  10062. If LINEA=True Then L=Y Curs Else L=LINEA
  10063. Locate 0,L : Inverse On : Cline : Centre TESTO$ : Inverse Off 
  10064. End Proc
  10065. Procedure TIPODILUOGO
  10066. Print "Tipo di luogo>";TIPOL$(TIPOL(POSIZIONEP(0)))
  10067. End Proc
  10068. Procedure TIPODILUOGODIDESTINAZIONE
  10069. Print "Tipo di luogo di destinazione>";TIPOL$(TIPOL(LUOGODIDESTINAZIONEP(0)))
  10070. End Proc
  10071. Procedure USA
  10072. For A=0 To NUMEROCO
  10073.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10074.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10075. Next A
  10076. If CATEGORIEOGGETTI>0
  10077.  If CATEGORIEOGGETTI>1
  10078.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi usare ?>";OGGETTO$;
  10079.   Curs Off 
  10080.   If OGGETTO$<>""
  10081.    For A=0 To NUMEROO
  10082.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10083.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10084.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10085.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10086.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10087.      End If 
  10088.     End If 
  10089.    Next A
  10090.    If A=NUMEROO+1
  10091.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  10092.     If _MUSICA=False
  10093.      Bell 1
  10094.     End If 
  10095.     Proc _ASPETTA
  10096.    End If 
  10097.   End If 
  10098.  Else 
  10099.   For A=0 To NUMEROO
  10100.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10101.     Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10102.    End If 
  10103.   Next A
  10104.  End If 
  10105. Else 
  10106.  Print At(0,ULTIMALINEA);"Non hai oggetti da usare";
  10107.  If _MUSICA=False
  10108.   Bell 1
  10109.  End If 
  10110.  Proc _ASPETTA
  10111. End If 
  10112. End Proc
  10113. Procedure USASUOGGETTO[O,Q]
  10114. COMPIUTAAZIONE=1
  10115. If TIPOCO(CATEGORIAO(O))=%100000
  10116.  Locate 0,ULTIMALINEA
  10117.  If Btst(1,TIPOO(O))=True
  10118.   Print "Non puoi ammaliare 1 ";
  10119.   If Btst(1,TIPOO(Q))=True
  10120.    Print NOMESRO$(CATEGORIAO(Q));
  10121.   Else 
  10122.    Print NOMESCO$(CATEGORIAO(Q));
  10123.   End If 
  10124.   Print " con 1 ";NOMESRO$(CATEGORIAO(O))
  10125.  Else 
  10126.   Print "Hai deciso di ammaliare 1 ";
  10127.   If Btst(1,TIPOO(Q))=True
  10128.    Print NOMESRO$(CATEGORIAO(Q));
  10129.   Else 
  10130.    Print NOMESCO$(CATEGORIAO(Q));
  10131.   End If 
  10132.   Print " con 1 ";
  10133.   If Btst(1,TIPOO(O))=True
  10134.    Print NOMESRO$(CATEGORIAO(O));
  10135.   Else 
  10136.    Print NOMESCO$(CATEGORIAO(O));
  10137.   End If 
  10138.   MAGIA=PARATIPOCO(CATEGORIAO(O))/$10000
  10139.   PARMAGIA=PARATIPOCO(CATEGORIAO(O)) mod $10000
  10140.   If MAGIA=0
  10141. 'Cambia la categoria dell'oggetto, cio� lo trasforma in un'altro oggetto 
  10142.    CATEGORIAO(Q)=PARMAGIA
  10143.   Else If MAGIA=1
  10144. 'Fa diventare l'oggetto il resto dell'oggetto e viceversa
  10145.    Bchg 1,TIPOO(Q)
  10146.   Else If MAGIA=2
  10147. 'Fa diventare l'oggetto il resto di un oggetto e crea un nuovo oggetto della 
  10148. ' categoria indicata dal parametro PARMAGIA
  10149.    Bclr 1,TIPOO(Q)
  10150.    Inc NUMEROO
  10151.    CATEGORIAO(NUMEROO)=PARMAGIA
  10152.    POSIZIONEO(NUMEROO)=POSIZIONEO(Q)
  10153.   End If 
  10154.  End If 
  10155. Else 
  10156.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di usare 1 ";
  10157.  If Btst(1,TIPOO(O))=True
  10158.   Print NOMESRO$(CATEGORIAO(O));
  10159.  Else 
  10160.   Print NOMESCO$(CATEGORIAO(O));
  10161.  End If 
  10162.  Print " su 1 ";
  10163.  If Btst(1,TIPOO(Q))=True
  10164.   Print NOMESRO$(CATEGORIAO(Q));
  10165.  Else 
  10166.   Print NOMESCO$(CATEGORIAO(Q));
  10167.  End If 
  10168. End If 
  10169. OGGETTOUSANTE=O
  10170. OGGETTOUSATO=Q
  10171. Proc _ASPETTA
  10172. End Proc
  10173. Procedure USASUOGGETTOP[O,P,Q]
  10174. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  10175.  Print NOMEP$(P);" sta usando 1 ";
  10176.  If Btst(1,TIPOO(O))=True
  10177.   Print NOMESRO$(CATEGORIAO(O));
  10178.  Else 
  10179.   Print NOMESCO$(CATEGORIAO(O));
  10180.  End If 
  10181.  Print " su 1 ";
  10182.  If Btst(1,TIPOO(Q))=True
  10183.   Print NOMESRO$(CATEGORIAO(Q))
  10184.  Else 
  10185.   Print NOMESCO$(CATEGORIAO(Q))
  10186.  End If 
  10187. End If 
  10188. End Proc
  10189. Procedure USASUPERSONAGGIO[O,P]
  10190. Locate 0,ULTIMALINEA : Cline 
  10191. If P=0
  10192.  If TIPOCO(CATEGORIAO(O))=%1
  10193.   If Btst(1,TIPOO(O))=True
  10194.    Print "Non puoi mangiarti 1"; : RESTO=True
  10195.    If _MUSICA=False
  10196.     Bell 1
  10197.    End If 
  10198.   Else 
  10199.    COMPIUTAAZIONE=1
  10200.    Print "Hai deciso di mangiarti 1";
  10201.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10202.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10203.    Bset 1,TIPOO(O)
  10204.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10205.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10206.   End If 
  10207.  Else If TIPOCO(CATEGORIAO(O))=%100
  10208.   If Btst(1,TIPOO(O))=True
  10209.    Print "Non puoi difenderti con 1"; : RESTO=True
  10210.    If _MUSICA=False
  10211.     Bell 1
  10212.    End If 
  10213.   Else 
  10214.    COMPIUTAAZIONE=1
  10215.    Print "Hai deciso di difenderti con 1";
  10216.    Bset 2,TIPOO(O)
  10217.   End If 
  10218.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10219.   If Btst(1,TIPOO(O))=True
  10220.    Print "Non puoi leggerti 1"; : RESTO=True
  10221.    If _MUSICA=False
  10222.     Bell 1
  10223.    End If 
  10224.   Else 
  10225.    COMPIUTAAZIONE=1
  10226.    Print "Hai deciso di leggerti 1"; : PERSONAGGIO0DEVELEGGERE=True
  10227.   End If 
  10228.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10229.   If Btst(1,TIPOO(O))=True
  10230.    Print "Non puoi berti 1"; : RESTO=True
  10231.    If _MUSICA=False
  10232.     Bell 1
  10233.    End If 
  10234.   Else 
  10235.    COMPIUTAAZIONE=1
  10236.    Print "Hai deciso di berti 1";
  10237.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10238.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10239.    Bset 1,TIPOO(O)
  10240.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10241.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10242.   End If 
  10243.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10244.   If Btst(1,TIPOO(O))=True
  10245.    Print "Non puoi ammaliarti con 1"; : RESTO=True
  10246.    If _MUSICA=False
  10247.     Bell 1
  10248.    End If 
  10249.   Else 
  10250.    COMPIUTAAZIONE=1
  10251.    Print "Hai deciso di ammaliarti con 1";
  10252.   End If 
  10253.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10254.   If Btst(1,TIPOO(O))=True
  10255.    Print "Non puoi colpirti con 1"; : RESTO=True
  10256.    If _MUSICA=False
  10257.     Bell 1
  10258.    End If 
  10259.   Else 
  10260.    COMPIUTAAZIONE=1
  10261.    Print "Hai deciso di colpirti con 1";
  10262.    RESISTENZA=RESISTENZAP(0)
  10263.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10264.    For A=0 To NUMEROO
  10265.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10266.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10267.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10268.      End If 
  10269.     End If 
  10270.    Next A
  10271.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10272.   End If 
  10273.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10274.   If Btst(1,TIPOO(O))=True
  10275.    Print "Non puoi colpirti con 1"; : RESTO=True
  10276.    If _MUSICA=False
  10277.     Bell 1
  10278.    End If 
  10279.   Else 
  10280.    COMPIUTAAZIONE=1
  10281.    Print "Hai deciso di colpirti con 1";
  10282.    RESISTENZA=RESISTENZAP(0)
  10283.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10284.    For A=0 To NUMEROO
  10285.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10286.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10287.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10288.      End If 
  10289.     End If 
  10290.    Next A
  10291.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10292.   End If 
  10293.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10294.   If Btst(1,TIPOO(O))=True
  10295.    Print "Non puoi colpirti con 1"; : RESTO=True
  10296.    If _MUSICA=False
  10297.     Bell 1
  10298.    End If 
  10299.   Else 
  10300.    For A=0 To NUMEROO
  10301.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10302.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10303.     End If 
  10304.    Next A
  10305.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10306.     COMPIUTAAZIONE=1
  10307.     Print "Hai deciso di colpirti con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10308.     RESISTENZA=RESISTENZAP(0)
  10309.     For A=0 To NUMEROO
  10310.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10311.       V=A
  10312.      End If 
  10313.     Next A
  10314.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(V))*25
  10315.     For A=0 To NUMEROO
  10316.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10317.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10318.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10319.       End If 
  10320.      End If 
  10321.     Next A
  10322.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10323.    Else 
  10324.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10325.     If _MUSICA=False
  10326.      Bell 1
  10327.     End If 
  10328.    End If 
  10329.   End If 
  10330.  End If 
  10331. Else 
  10332.  If TIPOCO(CATEGORIAO(O))=%1
  10333.   If Btst(1,TIPOO(O))=True
  10334.    Print "Non puoi far mangiare a ";NOMEP$(P);" 1"; : RESTO=True
  10335.    If _MUSICA=False
  10336.     Bell 1
  10337.    End If 
  10338.   Else 
  10339.    COMPIUTAAZIONE=1
  10340.    Print "Hai deciso di far mangiare a ";NOMEP$(P);" 1";
  10341.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10342.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10343.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10344.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10345.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10346.    Bset 1,TIPOO(O)
  10347.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10348.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10349.   End If 
  10350.  Else If TIPOCO(CATEGORIAO(O))=%100
  10351.   If Btst(1,TIPOO(O))=True
  10352.    Print "Non puoi difendere ";NOMEP$(P);" con 1"; : RESTO=True
  10353.    If _MUSICA=False
  10354.     Bell 1
  10355.    End If 
  10356.   Else 
  10357.    COMPIUTAAZIONE=1
  10358.    Print "Hai deciso di difendere ";NOMEP$(P);" con 1";
  10359.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10360.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10361.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10362.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10363.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10364.    Bset 2,TIPOO(O)
  10365.   End If 
  10366.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10367.   If Btst(1,TIPOO(O))=True
  10368.    Print "Non puoi far leggere a ";NOMEP$(P);" 1"; : RESTO=True
  10369.    If _MUSICA=False
  10370.     Bell 1
  10371.    End If 
  10372.   Else 
  10373.    COMPIUTAAZIONE=1
  10374.    Print "Hai deciso di far leggere a ";NOMEP$(P);" 1";
  10375.   End If 
  10376.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10377.   If Btst(1,TIPOO(O))=True
  10378.    Print "Non puoi far bere a ";NOMEP$(P);" 1"; : RESTO=True
  10379.    If _MUSICA=False
  10380.     Bell 1
  10381.    End If 
  10382.   Else 
  10383.    COMPIUTAAZIONE=1
  10384.    Print "Hai deciso di far bere a ";NOMEP$(P);" 1";
  10385.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10386.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10387.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10388.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10389.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10390.    Bset 1,TIPOO(O)
  10391.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10392.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10393.   End If 
  10394.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10395.   If Btst(1,TIPOO(O))=True
  10396.    Print "Non puoi ammaliare ";NOMEP$(P);" con 1"; : RESTO=True
  10397.    If _MUSICA=False
  10398.     Bell 1
  10399.    End If 
  10400.   Else 
  10401.    COMPIUTAAZIONE=1
  10402.    Print "Hai deciso di ammaliare ";NOMEP$(P);" con 1";
  10403.   End If 
  10404.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10405.   If Btst(1,TIPOO(O))=True
  10406.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10407.    If _MUSICA=False
  10408.     Bell 1
  10409.    End If 
  10410.   Else 
  10411.    COMPIUTAAZIONE=1
  10412.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10413.    RESISTENZA=RESISTENZAP(P)
  10414.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10415.    For A=0 To NUMEROO
  10416.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10417.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10418.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10419.      End If 
  10420.     End If 
  10421.    Next A
  10422.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10423.   End If 
  10424.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10425.   If Btst(1,TIPOO(O))=True
  10426.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10427.    If _MUSICA=False
  10428.     Bell 1
  10429.    End If 
  10430.   Else 
  10431.    COMPIUTAAZIONE=1
  10432.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10433.    RESISTENZA=RESISTENZAP(P)
  10434.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10435.    For A=0 To NUMEROO
  10436.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10437.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10438.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10439.      End If 
  10440.     End If 
  10441.    Next A
  10442.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10443.   End If 
  10444.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10445.   If Btst(1,TIPOO(O))=True
  10446.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10447.    If _MUSICA=False
  10448.     Bell 1
  10449.    End If 
  10450.   Else 
  10451.    For A=0 To NUMEROO
  10452.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10453.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10454.     End If 
  10455.    Next A
  10456.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10457.     COMPIUTAAZIONE=1
  10458.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10459.     RESISTENZA=RESISTENZAP(0)
  10460.     For A=0 To NUMEROO
  10461.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10462.       V=A
  10463.      End If 
  10464.     Next A
  10465.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10466.     If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10467.      POSIZIONEO(V)= Not P : Bset 0,TIPOO(V)
  10468.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10469.      Add PESONETTOP(P),PESOCO(CATEGORIAO(V))
  10470.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(V))
  10471.     End If 
  10472.     For A=0 To NUMEROO
  10473.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10474.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10475.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10476.       End If 
  10477.      End If 
  10478.     Next A
  10479.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10480.    Else 
  10481.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10482.     If _MUSICA=False
  10483.      Bell 1
  10484.     End If 
  10485.    End If 
  10486.   End If 
  10487.  End If 
  10488. End If 
  10489. Print " ";
  10490. If RESTO=True
  10491.  Print NOMESRO$(CATEGORIAO(O));
  10492. Else 
  10493.  Print NOMESCO$(CATEGORIAO(O));
  10494. End If 
  10495. OGGETTOUSANTE=O
  10496. PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
  10497. If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
  10498. Proc _ASPETTA
  10499. If PERSONAGGIO0DEVELEGGERE=True
  10500.  Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10501.  PERSONAGGIO0DEVELEGGERE=False
  10502. End If 
  10503. End Proc
  10504. Procedure USASUPERSONAGGIOP[O,P,Q]
  10505. If P=Q Then Pop Proc
  10506. If Btst(1,TIPOO(O))=False
  10507.  If Btst(2,TIPOP(0))=False
  10508.   PERSONAGGIO0SVEGLIO=True
  10509.  End If 
  10510.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10511.   PERSONAGGIOVISIBILE=True
  10512.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10513.   PERSONAGGIOVISIBILE=True
  10514.  Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
  10515.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10516.    PERSONAGGIOVISIBILE=True
  10517.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10518.    PERSONAGGIOVISIBILE=True
  10519.   End If 
  10520.  End If 
  10521.  If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10522.   Print NOMEP$(P);" ";
  10523.  End If 
  10524.  If TIPOCO(CATEGORIAO(O))=%1
  10525.   If Q>0
  10526.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10527.     Print "sta facendo mangiare a ";NOMEP$(Q);" 1";
  10528.    End If 
  10529.   Else 
  10530.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10531.     Print "ti sta facendo mangiare 1";
  10532.    End If 
  10533.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10534.   End If 
  10535.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10536.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10537.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10538.   Bset 1,TIPOO(O)
  10539.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10540.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10541.  Else If TIPOCO(CATEGORIAO(O))=%100
  10542.   If Q>0
  10543.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10544.     Print "sta difendendo ";NOMEP$(Q);" con 1";
  10545.    End If 
  10546.   Else 
  10547.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10548.     Print "ti sta difendendo con 1";
  10549.    End If 
  10550.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10551.   End If 
  10552.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10553.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10554.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10555.   Bset 2,TIPOO(O)
  10556.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10557.   If Q>0
  10558.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10559.     Print "sta facendo leggere a ";NOMEP$(Q);" 1";
  10560.    End If 
  10561.   Else 
  10562.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10563.     Print "ti sta facendo leggere 1"; : PERSONAGGIO0DEVELEGGERE=True
  10564.    End If 
  10565.   End If 
  10566.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10567.   If Q>0
  10568.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10569.     Print "sta facendo bere a ";NOMEP$(Q);" 1";
  10570.    End If 
  10571.   Else 
  10572.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10573.     Print "ti sta facendo bere 1";
  10574.    End If 
  10575.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10576.   End If 
  10577.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10578.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10579.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10580.   Bset 1,TIPOO(O)
  10581.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10582.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10583.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10584.   If Q>0
  10585.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10586.     Print "sta ammaliando ";NOMEP$(Q);" con 1";
  10587.    End If 
  10588.   Else 
  10589.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10590.     Print "ti sta ammaliando con 1";
  10591.    End If 
  10592.   End If 
  10593.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10594.   If Q>0
  10595.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10596.     Print "sta colpendo ";NOMEP$(Q);" con 1";
  10597.    End If 
  10598.   Else 
  10599.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10600.     Print "ti sta colpendo con 1";
  10601.    End If 
  10602.   End If 
  10603.   RESISTENZA=RESISTENZAP(Q)
  10604.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10605.   For A=0 To NUMEROO
  10606.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10607.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10608.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10609.     End If 
  10610.    End If 
  10611.   Next A
  10612.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10613.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10614.   If Q>0
  10615.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10616.     Print "sta colpendo ";NOMEP$(Q);" con 1";
  10617.    End If 
  10618.   Else 
  10619.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10620.     Print "ti sta colpendo con 1";
  10621.    End If 
  10622.   End If 
  10623.   RESISTENZA=RESISTENZAP(Q)
  10624.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10625.   For A=0 To NUMEROO
  10626.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10627.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10628.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10629.     End If 
  10630.    End If 
  10631.   Next A
  10632.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10633.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10634.   For A=0 To NUMEROO
  10635.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10636.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10637.    End If 
  10638.   Next A
  10639.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10640.    If Q>0
  10641.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10642.      Print "sta colpendo ";NOMEP$(Q);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10643.     End If 
  10644.    Else 
  10645.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10646.      Print "ti sta colpendo con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10647.     End If 
  10648.    End If 
  10649.    RESISTENZA=RESISTENZAP(Q)
  10650.    For A=0 To NUMEROO
  10651.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10652.      V=A
  10653.     End If 
  10654.    Next A
  10655.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(V))*25
  10656.    If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10657.     If Q=0
  10658.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10659.     End If 
  10660.     POSIZIONEO(V)=-1-Q : Bset 0,TIPOO(V)
  10661.     Add PESONETTOP(Q),PESOCO(CATEGORIAO(V))
  10662.    End If 
  10663.    For A=0 To NUMEROO
  10664.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10665.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10666.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10667.      End If 
  10668.     End If 
  10669.    Next A
  10670.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10671.   End If 
  10672.  End If 
  10673.  If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10674.   Print " ";NOMESCO$(CATEGORIAO(O))
  10675.  End If 
  10676.  If Q>0 and RESISTENZAP(Q)=0
  10677.   If PERSONAGGIOVISIBILE=True
  10678.    Proc MORTE[Q]
  10679.   End If 
  10680.  End If 
  10681.  If PERSONAGGIO0DEVELEGGERE=True
  10682.   Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10683.   PERSONAGGIO0DEVELEGGERE=False
  10684.  End If 
  10685. End If 
  10686. End Proc
  10687. Procedure USASUUNOGGETTO[O]
  10688. For A=0 To NUMEROCO
  10689.  If OGGETTINELLUOGO(A)>0
  10690.   Inc CATEGORIEOGGETTI
  10691.  End If 
  10692.  If RESTINELLUOGO(A)>0
  10693.   Inc CATEGORIEOGGETTI
  10694.  End If 
  10695. Next A
  10696. If CATEGORIEOGGETTI>0
  10697.  If CATEGORIEOGGETTI>1
  10698.   Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
  10699.   Curs Off 
  10700.   If OGGETTO$<>""
  10701.    For A=0 To NUMEROO
  10702.     If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  10703.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  10704.       Proc USASUOGGETTO[O,A] : Exit 
  10705.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  10706.       Proc USASUOGGETTO[O,A] : Exit 
  10707.      End If 
  10708.     End If 
  10709.    Next A
  10710.    If A=NUMEROO+1
  10711.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  10712.     If _MUSICA=False
  10713.      Bell 1
  10714.     End If 
  10715.     Proc _ASPETTA
  10716.    End If 
  10717.   End If 
  10718.  Else 
  10719.   For A=0 To NUMEROO
  10720.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  10721.     Proc USASUOGGETTO[O,A] : Exit 
  10722.    End If 
  10723.   Next A
  10724.  End If 
  10725. End If 
  10726. End Proc
  10727. Procedure USASUUNPERSONAGGIO[O]
  10728. For A=0 To NUMEROP
  10729.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10730.   Inc PERSONAGGI
  10731.  Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10732.   Inc PERSONAGGI
  10733.  End If 
  10734. Next A
  10735. If PERSONAGGI>1
  10736.  Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
  10737.  Curs Off 
  10738.  If PERSONAGGIO$<>""
  10739.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  10740.   If PERSONAGGIO$="me"
  10741.    USASUPERSONAGGIO[O,0]
  10742.   Else 
  10743.    For A=1 To NUMEROP
  10744.     If PERSONAGGIO$=Lower$(NOMEP$(A))
  10745.      If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10746.       USASUPERSONAGGIO[O,A] : Exit 
  10747.      Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10748.       USASUPERSONAGGIO[O,A] : Exit 
  10749.      End If 
  10750.     End If 
  10751.    Next A
  10752.    If A=NUMEROP+1
  10753.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  10754.     If _MUSICA=False
  10755.      Bell 1
  10756.     End If 
  10757.     Proc _ASPETTA
  10758.    End If 
  10759.   End If 
  10760.  End If 
  10761. Else 
  10762.  USASUPERSONAGGIO[O,0]
  10763. End If 
  10764. End Proc
  10765. Procedure USATI[O,P]
  10766. If Btst(1,TIPOO(O))=False
  10767.  If Btst(2,TIPOP(0))=False
  10768.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10769.    PERSONAGGIOVISIBILE=True
  10770.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10771.    PERSONAGGIOVISIBILE=True
  10772.   Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
  10773.    PERSONAGGIOVISIBILE=True
  10774.   End If 
  10775.  End If 
  10776.  If PERSONAGGIOVISIBILE=True
  10777.   Print NOMEP$(P);" ";
  10778.  End If 
  10779.  If TIPOCO(CATEGORIAO(O))=%1
  10780.   If PERSONAGGIOVISIBILE=True
  10781.    Print "si sta mangiando 1";
  10782.   End If 
  10783.   Bset 1,TIPOO(O)
  10784.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10785.    Inc RESISTENZAP(P)
  10786.   End If 
  10787.  Else If TIPOCO(CATEGORIAO(O))=%100
  10788.   If PERSONAGGIOVISIBILE=True
  10789.    Print "si sta difendendo con 1";
  10790.   End If 
  10791.   Bset 2,TIPOO(O)
  10792.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10793.   If PERSONAGGIOVISIBILE=True
  10794.    Print "si sta leggendo 1";
  10795.   End If 
  10796.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10797.   If PERSONAGGIOVISIBILE=True
  10798.    Print "si sta bevendo 1";
  10799.   End If 
  10800.   Bset 1,TIPOO(O)
  10801.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10802.    Inc RESISTENZAP(P)
  10803.   End If 
  10804.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10805.   If PERSONAGGIOVISIBILE=True
  10806.    Print "si sta ammaliando con 1";
  10807.   End If 
  10808.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10809.   If PERSONAGGIOVISIBILE=True
  10810.    Print "si colpisce con 1";
  10811.   End If 
  10812.   RESISTENZA=RESISTENZAP(P)
  10813.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10814.   For A=0 To NUMEROO
  10815.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10816.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
  10817.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10818.     End If 
  10819.    End If 
  10820.   Next A
  10821.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10822.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10823.   If PERSONAGGIOVISIBILE=True
  10824.    Print "si colpisce con 1";
  10825.   End If 
  10826.   RESISTENZA=RESISTENZAP(P)
  10827.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10828.   For A=0 To NUMEROO
  10829.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10830.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10831.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10832.     End If 
  10833.    End If 
  10834.   Next A
  10835.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10836.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10837.   For A=0 To NUMEROO
  10838.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10839.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10840.    End If 
  10841.   Next A
  10842.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10843.    If PERSONAGGIOVISIBILE=True
  10844.     Print "si colpisce con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10845.    End If 
  10846.    RESISTENZA=RESISTENZAP(0)
  10847.    For A=0 To NUMEROO
  10848.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10849.      V=A
  10850.     End If 
  10851.    Next A
  10852.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10853.    For A=0 To NUMEROO
  10854.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10855.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10856.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10857.      End If 
  10858.     End If 
  10859.    Next A
  10860.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10861.   End If 
  10862.  End If 
  10863.  If PERSONAGGIOVISIBILE=True
  10864.   Print " ";NOMESCO$(CATEGORIAO(O))
  10865.  End If 
  10866.  If P>0 and RESISTENZAP(P)=0
  10867.   If PERSONAGGIOVISIBILE=True
  10868.    Proc MORTE[P]
  10869.   End If 
  10870.  End If 
  10871. End If 
  10872. End Proc
  10873. Procedure USATIUNO[AZIONE,P]
  10874. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10875. For A=0 To NUMEROO
  10876.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10877.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10878.   B=A
  10879.  End If 
  10880. Next A
  10881. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10882.  Pop Proc
  10883. End If 
  10884. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10885.  A=B
  10886. Else 
  10887.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10888.  B=0
  10889.  For A=0 To NUMEROO
  10890.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10891.    OGGETTODELPERSONAGGIOP(B)=A
  10892.    Inc B
  10893.   End If 
  10894.  Next A
  10895.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10896. End If 
  10897. Proc USATI[A,P]
  10898. End Proc
  10899. Procedure USATIUNOA[AZIONE,P]
  10900. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10901. For A=0 To NUMEROO
  10902.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10903.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10904.   B=A
  10905.  End If 
  10906. Next A
  10907. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10908.  Pop Proc
  10909. End If 
  10910. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10911.  A=B
  10912. Else 
  10913.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10914.  B=0
  10915.  For A=0 To NUMEROO
  10916.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10917.    OGGETTODELPERSONAGGIOP(B)=A
  10918.    Inc B
  10919.   End If 
  10920.  Next A
  10921.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10922. End If 
  10923. Proc USATI[A,P]
  10924. End Proc
  10925. Procedure USATIUNOTA[AZIONE,P]
  10926. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10927. For A=0 To NUMEROO
  10928.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10929.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10930.   B=A
  10931.  End If 
  10932. Next A
  10933. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10934.  Pop Proc
  10935. End If 
  10936. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10937.  A=B
  10938. Else 
  10939.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10940.  B=0
  10941.  For A=0 To NUMEROO
  10942.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10943.    OGGETTODELPERSONAGGIOP(B)=A
  10944.    Inc B
  10945.   End If 
  10946.  Next A
  10947.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10948. End If 
  10949. Proc USATI[A,P]
  10950. End Proc
  10951. Procedure USAUNOSUAO[AZIONE,P]
  10952. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10953. For A=0 To NUMEROO
  10954.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10955.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10956.   B=A
  10957.  End If 
  10958. Next A
  10959. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10960.  Pop Proc
  10961. End If 
  10962. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10963.  A=B
  10964. Else 
  10965.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10966.  B=0
  10967.  For A=0 To NUMEROO
  10968.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10969.    OGGETTODELPERSONAGGIOP(B)=A
  10970.    Inc B
  10971.   End If 
  10972.  Next A
  10973.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10974. End If 
  10975. For B=0 To NUMEROO
  10976.  If POSIZIONEO(B)=POSIZIONEP(P)
  10977.   USASUOGGETTOP[A,P,B]
  10978.   Dec PARAAAZIONEP(AZIONE,P)
  10979.   If PARAAAZIONEP(AZIONE,P)=0
  10980.    FINEA(AZIONE,P)=True
  10981.   End If 
  10982.   Exit 
  10983.  End If 
  10984. Next B
  10985. End Proc
  10986. Procedure USAUNOSUAOB[AZIONE,P]
  10987. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10988. For A=0 To NUMEROO
  10989.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  10990.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10991.   B=A
  10992.  End If 
  10993. Next A
  10994. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10995.  Pop Proc
  10996. End If 
  10997. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10998.  A=B
  10999. Else 
  11000.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11001.  B=0
  11002.  For A=0 To NUMEROO
  11003.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11004.    OGGETTODELPERSONAGGIOP(B)=A
  11005.    Inc B
  11006.   End If 
  11007.  Next A
  11008.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11009. End If 
  11010. For B=0 To NUMEROO
  11011.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11012.   USASUOGGETTOP[A,P,B]
  11013.   Dec PARAAAZIONEP(AZIONE,P)
  11014.   If PARAAAZIONEP(AZIONE,P)=0
  11015.    FINEA(AZIONE,P)=True
  11016.   End If 
  11017.   Exit 
  11018.  End If 
  11019. Next B
  11020. End Proc
  11021. Procedure USAUNOSUAOTB[AZIONE,P]
  11022. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11023. For A=0 To NUMEROO
  11024.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11025.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11026.   B=A
  11027.  End If 
  11028. Next A
  11029. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11030.  Pop Proc
  11031. End If 
  11032. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11033.  A=B
  11034. Else 
  11035.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11036.  B=0
  11037.  For A=0 To NUMEROO
  11038.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11039.    OGGETTODELPERSONAGGIOP(B)=A
  11040.    Inc B
  11041.   End If 
  11042.  Next A
  11043.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11044. End If 
  11045. For B=0 To NUMEROO
  11046.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11047.   USASUOGGETTOP[A,P,B]
  11048.   Dec PARAAAZIONEP(AZIONE,P)
  11049.   If PARAAAZIONEP(AZIONE,P)=0
  11050.    FINEA(AZIONE,P)=True
  11051.   End If 
  11052.   Exit 
  11053.  End If 
  11054. Next B
  11055. End Proc
  11056. Procedure USAUNOSUAP[AZIONE,P]
  11057. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11058. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11059.  PERSONAGGIOTROVATO=A
  11060. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11061.  PERSONAGGIOTROVATO=A
  11062. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11063.  PERSONAGGIOTROVATO=A
  11064. End If 
  11065. If PERSONAGGIOTROVATO>-1
  11066.  For A=0 To NUMEROO
  11067.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11068.    USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
  11069.    Dec PARAAAZIONEP(AZIONE,P)
  11070.    If PARAAAZIONEP(AZIONE,P)=0
  11071.     FINEA(AZIONE,P)=True
  11072.    End If 
  11073.    Exit 
  11074.   End If 
  11075.  Next A
  11076. End If 
  11077. End Proc
  11078. Procedure USAUNOSUPA[AZIONE,P]
  11079. A=PARAAAZIONEP(AZIONE,P)
  11080. For B=0 To NUMEROO
  11081.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
  11082.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11083.    Proc USASUPERSONAGGIOP[B,P,A]
  11084.    Exit 
  11085.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11086.    Proc USASUPERSONAGGIOP[B,P,A]
  11087.    Exit 
  11088.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11089.    Proc USASUPERSONAGGIOP[B,P,A]
  11090.    Exit 
  11091.   End If 
  11092.  End If 
  11093. Next B
  11094. End Proc
  11095. Procedure USAUNOASUBO[AZIONE,P]
  11096. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11097. For A=0 To NUMEROO
  11098.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11099.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11100.   B=A
  11101.  End If 
  11102. Next A
  11103. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11104.  Pop Proc
  11105. End If 
  11106. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11107.  A=B
  11108. Else 
  11109.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11110.  B=0
  11111.  For A=0 To NUMEROO
  11112.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11113.    OGGETTODELPERSONAGGIOP(B)=A
  11114.    Inc B
  11115.   End If 
  11116.  Next A
  11117.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11118. End If 
  11119. For B=0 To NUMEROO
  11120.  If POSIZIONEO(B)=POSIZIONEP(P)
  11121.   USASUOGGETTOP[A,P,B]
  11122.   Dec PARABAZIONEP(AZIONE,P)
  11123.   If PARABAZIONEP(AZIONE,P)=0
  11124.    FINEA(AZIONE,P)=True
  11125.   End If 
  11126.   Exit 
  11127.  End If 
  11128. Next B
  11129. End Proc
  11130. Procedure USAUNOASUBOC[AZIONE,P]
  11131. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11132. For A=0 To NUMEROO
  11133.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11134.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11135.   B=A
  11136.  End If 
  11137. Next A
  11138. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11139.  Pop Proc
  11140. End If 
  11141. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11142.  A=B
  11143. Else 
  11144.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11145.  B=0
  11146.  For A=0 To NUMEROO
  11147.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11148.    OGGETTODELPERSONAGGIOP(B)=A
  11149.    Inc B
  11150.   End If 
  11151.  Next A
  11152.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11153. End If 
  11154. For B=0 To NUMEROO
  11155.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11156.   USASUOGGETTOP[A,P,B]
  11157.   Dec PARABAZIONEP(AZIONE,P)
  11158.   If PARABAZIONEP(AZIONE,P)=0
  11159.    FINEA(AZIONE,P)=True
  11160.   End If 
  11161.   Exit 
  11162.  End If 
  11163. Next B
  11164. End Proc
  11165. Procedure USAUNOASUBOTC[AZIONE,P]
  11166. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11167. For A=0 To NUMEROO
  11168.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11169.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11170.   B=A
  11171.  End If 
  11172. Next A
  11173. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11174.  Pop Proc
  11175. End If 
  11176. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11177.  A=B
  11178. Else 
  11179.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11180.  B=0
  11181.  For A=0 To NUMEROO
  11182.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11183.    OGGETTODELPERSONAGGIOP(B)=A
  11184.    Inc B
  11185.   End If 
  11186.  Next A
  11187.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11188. End If 
  11189. For B=0 To NUMEROO
  11190.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11191.   USASUOGGETTOP[A,P,B]
  11192.   Dec PARABAZIONEP(AZIONE,P)
  11193.   If PARABAZIONEP(AZIONE,P)=0
  11194.    FINEA(AZIONE,P)=True
  11195.   End If 
  11196.   Exit 
  11197.  End If 
  11198. Next B
  11199. End Proc
  11200. Procedure USAUNOASUBP[AZIONE,P]
  11201. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11202. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11203.  PERSONAGGIOTROVATO=A
  11204. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11205.  PERSONAGGIOTROVATO=A
  11206. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11207.  PERSONAGGIOTROVATO=A
  11208. End If 
  11209. If PERSONAGGIOTROVATO>-1
  11210.  For A=0 To NUMEROO
  11211.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11212.    USASUPERSONAGGIOP[A,P,B]
  11213.    Dec PARABAZIONEP(AZIONE,P)
  11214.    If PARABAZIONEP(AZIONE,P)=0
  11215.     FINEA(AZIONE,P)=True
  11216.    End If 
  11217.    Exit 
  11218.   End If 
  11219.  Next A
  11220. End If 
  11221. End Proc
  11222. Procedure USAUNOASUPB[AZIONE,P]
  11223. A=PARABAZIONEP(AZIONE,P)
  11224. For B=0 To NUMEROO
  11225.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
  11226.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11227.    Proc USASUPERSONAGGIOP[B,P,A]
  11228.    Exit 
  11229.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11230.    Proc USASUPERSONAGGIOP[B,P,A]
  11231.    Exit 
  11232.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11233.    Proc USASUPERSONAGGIOP[B,P,A]
  11234.    Exit 
  11235.   End If 
  11236.  End If 
  11237. Next B
  11238. End Proc
  11239. Procedure USAUNOTASUBO[AZIONE,P]
  11240. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11241. For A=0 To NUMEROO
  11242.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11243.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11244.   B=A
  11245.  End If 
  11246. Next A
  11247. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11248.  Pop Proc
  11249. End If 
  11250. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11251.  A=B
  11252. Else 
  11253.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11254.  B=0
  11255.  For A=0 To NUMEROO
  11256.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11257.    OGGETTODELPERSONAGGIOP(B)=A
  11258.    Inc B
  11259.   End If 
  11260.  Next A
  11261.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11262. End If 
  11263. For B=0 To NUMEROO
  11264.  If POSIZIONEO(B)=POSIZIONEP(P)
  11265.   USASUOGGETTOP[A,P,B]
  11266.   Dec PARABAZIONEP(AZIONE,P)
  11267.   If PARABAZIONEP(AZIONE,P)=0
  11268.    FINEA(AZIONE,P)=True
  11269.   End If 
  11270.   Exit 
  11271.  End If 
  11272. Next B
  11273. End Proc
  11274. Procedure USAUNOTASUBOC[AZIONE,P]
  11275. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11276. For A=0 To NUMEROO
  11277.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11278.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11279.   B=A
  11280.  End If 
  11281. Next A
  11282. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11283.  Pop Proc
  11284. End If 
  11285. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11286.  A=B
  11287. Else 
  11288.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11289.  B=0
  11290.  For A=0 To NUMEROO
  11291.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11292.    OGGETTODELPERSONAGGIOP(B)=A
  11293.    Inc B
  11294.   End If 
  11295.  Next A
  11296.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11297. End If 
  11298. For B=0 To NUMEROO
  11299.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11300.   USASUOGGETTOP[A,P,B]
  11301.   Dec PARABAZIONEP(AZIONE,P)
  11302.   If PARABAZIONEP(AZIONE,P)=0
  11303.    FINEA(AZIONE,P)=True
  11304.   End If 
  11305.   Exit 
  11306.  End If 
  11307. Next B
  11308. End Proc
  11309. Procedure USAUNOTASUBOTC[AZIONE,P]
  11310. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11311. For A=0 To NUMEROO
  11312.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11313.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11314.   B=A
  11315.  End If 
  11316. Next A
  11317. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11318.  Pop Proc
  11319. End If 
  11320. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11321.  A=B
  11322. Else 
  11323.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11324.  B=0
  11325.  For A=0 To NUMEROO
  11326.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11327.    OGGETTODELPERSONAGGIOP(B)=A
  11328.    Inc B
  11329.   End If 
  11330.  Next A
  11331.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11332. End If 
  11333. For B=0 To NUMEROO
  11334.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11335.   USASUOGGETTOP[A,P,B]
  11336.   Dec PARABAZIONEP(AZIONE,P)
  11337.   If PARABAZIONEP(AZIONE,P)=0
  11338.    FINEA(AZIONE,P)=True
  11339.   End If 
  11340.   Exit 
  11341.  End If 
  11342. Next B
  11343. End Proc
  11344. Procedure USAUNOTASUBP[AZIONE,P]
  11345. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11346. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11347.  PERSONAGGIOTROVATO=A
  11348. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11349.  PERSONAGGIOTROVATO=A
  11350. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11351.  PERSONAGGIOTROVATO=A
  11352. End If 
  11353. If PERSONAGGIOTROVATO>-1
  11354.  For A=0 To NUMEROO
  11355.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11356.    USASUPERSONAGGIOP[A,P,B]
  11357.    Dec PARABAZIONEP(AZIONE,P)
  11358.    If PARABAZIONEP(AZIONE,P)=0
  11359.     FINEA(AZIONE,P)=True
  11360.    End If 
  11361.    Exit 
  11362.   End If 
  11363.  Next A
  11364. End If 
  11365. End Proc
  11366. Procedure USAUNOTASUPB[AZIONE,P]
  11367. A=PARABAZIONEP(AZIONE,P)
  11368. For B=0 To NUMEROO
  11369.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
  11370.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11371.    Proc USASUPERSONAGGIOP[B,P,A]
  11372.    Exit 
  11373.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11374.    Proc USASUPERSONAGGIOP[B,P,A]
  11375.    Exit 
  11376.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11377.    Proc USASUPERSONAGGIOP[B,P,A]
  11378.    Exit 
  11379.   End If 
  11380.  End If 
  11381. Next B
  11382. End Proc
  11383. Procedure _ASPETTA
  11384. Wait 200
  11385. End Proc
  11386. Procedure _ORDINALUOGHI[NUMEROLUOGHIMAPPA,LARGHEZZAMAPPALUOGHI,LUOGODIPARTENZA,LIMITI]
  11387. Dim D(7)
  11388. D(0)=LARGHEZZAMAPPALUOGHI
  11389. D(1)=LARGHEZZAMAPPALUOGHI+1
  11390. D(2)=1
  11391. D(3)=-LARGHEZZAMAPPALUOGHI+1
  11392. D(4)=-LARGHEZZAMAPPALUOGHI
  11393. D(5)=-LARGHEZZAMAPPALUOGHI-1
  11394. D(6)=-1
  11395. D(7)=LARGHEZZAMAPPALUOGHI-1
  11396. For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11397.  E=DREZIONEL(0,A)/$10000
  11398.  DREZIONEL(0,A)=D(0)+A+E*$10000
  11399.  E=DREZIONEL(1,A)/$10000
  11400.  DREZIONEL(1,A)=D(1)+A+E*$10000
  11401.  E=DREZIONEL(2,A)/$10000
  11402.  DREZIONEL(2,A)=D(2)+A+E*$10000
  11403.  E=DREZIONEL(3,A)/$10000
  11404.  DREZIONEL(3,A)=D(3)+A+E*$10000
  11405.  E=DREZIONEL(4,A)/$10000
  11406.  DREZIONEL(4,A)=D(4)+A+E*$10000
  11407.  E=DREZIONEL(5,A)/$10000
  11408.  DREZIONEL(5,A)=D(5)+A+E*$10000
  11409.  E=DREZIONEL(6,A)/$10000
  11410.  DREZIONEL(6,A)=D(6)+A+E*$10000
  11411.  E=DREZIONEL(7,A)/$10000
  11412.  DREZIONEL(7,A)=D(7)+A+E*$10000
  11413.  E=DREZIONEL(8,A)/$10000
  11414.  DREZIONEL(8,A)=$FFFF+E*$10000
  11415.  E=DREZIONEL(9,A)/$10000
  11416.  DREZIONEL(9,A)=$FFFF+E*$10000
  11417. Next A
  11418. If LIMITI=True
  11419.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11420.   If A=LUOGODIPARTENZA
  11421.    E=DREZIONEL(0,A)/$10000
  11422.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11423.    E=DREZIONEL(1,A)/$10000
  11424.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11425.    E=DREZIONEL(2,A)/$10000
  11426.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11427.    E=DREZIONEL(3,A)/$10000
  11428.    DREZIONEL(3,A)=$FFFF+E*$10000
  11429.    E=DREZIONEL(4,A)/$10000
  11430.    DREZIONEL(4,A)=$FFFF+E*$10000
  11431.    E=DREZIONEL(5,A)/$10000
  11432.    DREZIONEL(5,A)=$FFFF+E*$10000
  11433.    E=DREZIONEL(6,A)/$10000
  11434.    DREZIONEL(6,A)=$FFFF+E*$10000
  11435.    E=DREZIONEL(7,A)/$10000
  11436.    DREZIONEL(7,A)=$FFFF+E*$10000
  11437.   End If 
  11438.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11439.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11440.     E=DREZIONEL(0,A)/$10000
  11441.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11442.     E=DREZIONEL(1,A)/$10000
  11443.     DREZIONEL(1,A)=$FFFF+E*$10000
  11444.     E=DREZIONEL(2,A)/$10000
  11445.     DREZIONEL(2,A)=$FFFF+E*$10000
  11446.     E=DREZIONEL(3,A)/$10000
  11447.     DREZIONEL(3,A)=$FFFF+E*$10000
  11448.     E=DREZIONEL(4,A)/$10000
  11449.     DREZIONEL(4,A)=$FFFF+E*$10000
  11450.     E=DREZIONEL(5,A)/$10000
  11451.     DREZIONEL(5,A)=$FFFF+E*$10000
  11452.     E=DREZIONEL(6,A)/$10000
  11453.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11454.     E=DREZIONEL(7,A)/$10000
  11455.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11456.    Else 
  11457.     E=DREZIONEL(0,A)/$10000
  11458.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11459.     E=DREZIONEL(1,A)/$10000
  11460.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11461.     E=DREZIONEL(2,A)/$10000
  11462.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11463.     E=DREZIONEL(3,A)/$10000
  11464.     DREZIONEL(3,A)=$FFFF+E*$10000
  11465.     E=DREZIONEL(4,A)/$10000
  11466.     DREZIONEL(4,A)=$FFFF+E*$10000
  11467.     E=DREZIONEL(5,A)/$10000
  11468.     DREZIONEL(5,A)=$FFFF+E*$10000
  11469.     E=DREZIONEL(6,A)/$10000
  11470.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11471.     E=DREZIONEL(7,A)/$10000
  11472.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11473.    End If 
  11474.   End If 
  11475.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11476.    If A=B
  11477.     E=DREZIONEL(0,A)/$10000
  11478.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11479.     E=DREZIONEL(1,A)/$10000
  11480.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11481.     E=DREZIONEL(2,A)/$10000
  11482.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11483.     E=DREZIONEL(3,A)/$10000
  11484.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11485.     E=DREZIONEL(4,A)/$10000
  11486.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11487.     E=DREZIONEL(5,A)/$10000
  11488.     DREZIONEL(5,A)=$FFFF+E*$10000
  11489.     E=DREZIONEL(6,A)/$10000
  11490.     DREZIONEL(6,A)=$FFFF+E*$10000
  11491.     E=DREZIONEL(7,A)/$10000
  11492.     DREZIONEL(7,A)=$FFFF+E*$10000
  11493.    End If 
  11494.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11495.     E=DREZIONEL(0,A)/$10000
  11496.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11497.     E=DREZIONEL(1,A)/$10000
  11498.     DREZIONEL(1,A)=$FFFF+E*$10000
  11499.     E=DREZIONEL(2,A)/$10000
  11500.     DREZIONEL(2,A)=$FFFF+E*$10000
  11501.     E=DREZIONEL(3,A)/$10000
  11502.     DREZIONEL(3,A)=$FFFF+E*$10000
  11503.     E=DREZIONEL(4,A)/$10000
  11504.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11505.     E=DREZIONEL(5,A)/$10000
  11506.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11507.     E=DREZIONEL(6,A)/$10000
  11508.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11509.     E=DREZIONEL(7,A)/$10000
  11510.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11511.    End If 
  11512.   Next B
  11513.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11514.    E=DREZIONEL(0,A)/$10000
  11515.    DREZIONEL(0,A)=$FFFF+E*$10000
  11516.    E=DREZIONEL(1,A)/$10000
  11517.    DREZIONEL(1,A)=$FFFF+E*$10000
  11518.    E=DREZIONEL(2,A)/$10000
  11519.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11520.    E=DREZIONEL(3,A)/$10000
  11521.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11522.    E=DREZIONEL(4,A)/$10000
  11523.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11524.    E=DREZIONEL(5,A)/$10000
  11525.    DREZIONEL(5,A)=$FFFF+E*$10000
  11526.    E=DREZIONEL(6,A)/$10000
  11527.    DREZIONEL(6,A)=$FFFF+E*$10000
  11528.    E=DREZIONEL(7,A)/$10000
  11529.    DREZIONEL(7,A)=$FFFF+E*$10000
  11530.   End If 
  11531.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11532.    E=DREZIONEL(0,A)/$10000
  11533.    DREZIONEL(0,A)=$FFFF+E*$10000
  11534.    E=DREZIONEL(1,A)/$10000
  11535.    DREZIONEL(1,A)=$FFFF+E*$10000
  11536.    E=DREZIONEL(2,A)/$10000
  11537.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11538.    E=DREZIONEL(3,A)/$10000
  11539.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11540.    E=DREZIONEL(4,A)/$10000
  11541.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11542.    E=DREZIONEL(5,A)/$10000
  11543.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11544.    E=DREZIONEL(6,A)/$10000
  11545.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11546.    E=DREZIONEL(7,A)/$10000
  11547.    DREZIONEL(7,A)=$FFFF+E*$10000
  11548.   End If 
  11549.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11550.    E=DREZIONEL(0,A)/$10000
  11551.    DREZIONEL(0,A)=$FFFF+E*$10000
  11552.    E=DREZIONEL(1,A)/$10000
  11553.    DREZIONEL(1,A)=$FFFF+E*$10000
  11554.    E=DREZIONEL(2,A)/$10000
  11555.    DREZIONEL(2,A)=$FFFF+E*$10000
  11556.    E=DREZIONEL(3,A)/$10000
  11557.    DREZIONEL(3,A)=$FFFF+E*$10000
  11558.    E=DREZIONEL(4,A)/$10000
  11559.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11560.    E=DREZIONEL(5,A)/$10000
  11561.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11562.    E=DREZIONEL(6,A)/$10000
  11563.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11564.    E=DREZIONEL(7,A)/$10000
  11565.    DREZIONEL(7,A)=$FFFF+E*$10000
  11566.   End If 
  11567.  Next A
  11568. Else 
  11569.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11570.   If A=LUOGODIPARTENZA
  11571.    E=DREZIONEL(0,A)/$10000
  11572.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11573.    E=DREZIONEL(1,A)/$10000
  11574.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11575.    E=DREZIONEL(2,A)/$10000
  11576.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11577.    E=DREZIONEL(3,A)/$10000
  11578.    DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11579.    E=DREZIONEL(4,A)/$10000
  11580.    DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11581.    E=DREZIONEL(5,A)/$10000
  11582.    DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11583.    E=DREZIONEL(6,A)/$10000
  11584.    DREZIONEL(6,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11585.    E=DREZIONEL(7,A)/$10000
  11586.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11587.   End If 
  11588.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11589.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11590.     E=DREZIONEL(0,A)/$10000
  11591.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11592.     E=DREZIONEL(1,A)/$10000
  11593.     DREZIONEL(1,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI+E*$10000
  11594.     E=DREZIONEL(2,A)/$10000
  11595.     DREZIONEL(2,A)=LUOGODIPARTENZA+E*$10000
  11596.     E=DREZIONEL(3,A)/$10000
  11597.     DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11598.     E=DREZIONEL(4,A)/$10000
  11599.     DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11600.     E=DREZIONEL(5,A)/$10000
  11601.     DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-1+E*$10000
  11602.     E=DREZIONEL(6,A)/$10000
  11603.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11604.     E=DREZIONEL(7,A)/$10000
  11605.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11606.    Else 
  11607.     E=DREZIONEL(0,A)/$10000
  11608.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11609.     E=DREZIONEL(1,A)/$10000
  11610.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11611.     E=DREZIONEL(2,A)/$10000
  11612.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11613.     E=DREZIONEL(3,A)/$10000
  11614.     DREZIONEL(3,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11615.     E=DREZIONEL(4,A)/$10000
  11616.     DREZIONEL(4,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11617.     E=DREZIONEL(5,A)/$10000
  11618.     DREZIONEL(5,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+E*$10000
  11619.     E=DREZIONEL(6,A)/$10000
  11620.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11621.     E=DREZIONEL(7,A)/$10000
  11622.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11623.    End If 
  11624.   End If 
  11625.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11626.    If A=B
  11627.     E=DREZIONEL(0,A)/$10000
  11628.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11629.     E=DREZIONEL(1,A)/$10000
  11630.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11631.     E=DREZIONEL(2,A)/$10000
  11632.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11633.     E=DREZIONEL(3,A)/$10000
  11634.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11635.     E=DREZIONEL(4,A)/$10000
  11636.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11637.     E=DREZIONEL(5,A)/$10000
  11638.     DREZIONEL(5,A)=A-1+E*$10000
  11639.     E=DREZIONEL(6,A)/$10000
  11640.     DREZIONEL(6,A)=A+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11641.     E=DREZIONEL(7,A)/$10000
  11642.     DREZIONEL(7,A)=A+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11643.    End If 
  11644.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11645.     E=DREZIONEL(0,A)/$10000
  11646.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11647.     E=DREZIONEL(1,A)/$10000
  11648.     DREZIONEL(1,A)=A+1+E*$10000
  11649.     E=DREZIONEL(2,A)/$10000
  11650.     DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11651.     E=DREZIONEL(3,A)/$10000
  11652.     DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11653.     E=DREZIONEL(4,A)/$10000
  11654.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11655.     E=DREZIONEL(5,A)/$10000
  11656.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11657.     E=DREZIONEL(6,A)/$10000
  11658.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11659.     E=DREZIONEL(7,A)/$10000
  11660.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11661.    End If 
  11662.   Next B
  11663.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11664.    E=DREZIONEL(0,A)/$10000
  11665.    DREZIONEL(0,A)=LUOGODIPARTENZA+E*$10000
  11666.    E=DREZIONEL(1,A)/$10000
  11667.    DREZIONEL(1,A)=LUOGODIPARTENZA+1+E*$10000
  11668.    E=DREZIONEL(2,A)/$10000
  11669.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11670.    E=DREZIONEL(3,A)/$10000
  11671.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11672.    E=DREZIONEL(4,A)/$10000
  11673.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11674.    E=DREZIONEL(5,A)/$10000
  11675.    DREZIONEL(5,A)=A-1+E*$10000
  11676.    E=DREZIONEL(6,A)/$10000
  11677.    DREZIONEL(6,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11678.    E=DREZIONEL(7,A)/$10000
  11679.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11680.   End If 
  11681.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11682.    E=DREZIONEL(0,A)/$10000
  11683.    DREZIONEL(0,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11684.    E=DREZIONEL(1,A)/$10000
  11685.    DREZIONEL(1,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI+E*$10000
  11686.    E=DREZIONEL(2,A)/$10000
  11687.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11688.    E=DREZIONEL(3,A)/$10000
  11689.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11690.    E=DREZIONEL(4,A)/$10000
  11691.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11692.    E=DREZIONEL(5,A)/$10000
  11693.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11694.    E=DREZIONEL(6,A)/$10000
  11695.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11696.    E=DREZIONEL(7,A)/$10000
  11697.    DREZIONEL(7,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11698.   End If 
  11699.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11700.    E=DREZIONEL(0,A)/$10000
  11701.    DREZIONEL(0,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11702.    E=DREZIONEL(1,A)/$10000
  11703.    DREZIONEL(1,A)=LUOGODIPARTENZA+E*$10000
  11704.    E=DREZIONEL(2,A)/$10000
  11705.    DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11706.    E=DREZIONEL(3,A)/$10000
  11707.    DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11708.    E=DREZIONEL(4,A)/$10000
  11709.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11710.    E=DREZIONEL(5,A)/$10000
  11711.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11712.    E=DREZIONEL(6,A)/$10000
  11713.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11714.    E=DREZIONEL(7,A)/$10000
  11715.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11716.   End If 
  11717.  Next A
  11718. End If 
  11719. End Proc
  11720. Procedure _ORDINASTANZE[E,NUMEROSTANZEMAPPA,LARGHEZZAMAPPASTANZE,STANZADIPARTENZA]
  11721. Dim D(7)
  11722. D(0)=LARGHEZZAMAPPASTANZE
  11723. D(1)=LARGHEZZAMAPPASTANZE+1
  11724. D(2)=1
  11725. D(3)=-LARGHEZZAMAPPASTANZE+1
  11726. D(4)=-LARGHEZZAMAPPASTANZE
  11727. D(5)=-LARGHEZZAMAPPASTANZE-1
  11728. D(6)=-1
  11729. D(7)=LARGHEZZAMAPPASTANZE-1
  11730. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11731.  DREZIONES(0,A,E)=D(0)+A+E*$10000
  11732.  DREZIONES(1,A,E)=D(1)+A+E*$10000
  11733.  DREZIONES(2,A,E)=D(2)+A+E*$10000
  11734.  DREZIONES(3,A,E)=D(3)+A+E*$10000
  11735.  DREZIONES(4,A,E)=D(4)+A+E*$10000
  11736.  DREZIONES(5,A,E)=D(5)+A+E*$10000
  11737.  DREZIONES(6,A,E)=D(6)+A+E*$10000
  11738.  DREZIONES(7,A,E)=D(7)+A+E*$10000
  11739.  DREZIONES(8,A,E)=$FFFF+E*$10000
  11740.  DREZIONES(9,A,E)=$FFFF+E*$10000
  11741. Next A
  11742. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11743.  If A=STANZADIPARTENZA
  11744.   DREZIONES(0,A,E)=D(0)+STANZADIPARTENZA+E*$10000
  11745.   DREZIONES(1,A,E)=D(1)+STANZADIPARTENZA+E*$10000
  11746.   DREZIONES(2,A,E)=D(2)+STANZADIPARTENZA+E*$10000
  11747.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11748.   DREZIONES(4,A,E)=$FFFF+E*$10000
  11749.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11750.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11751.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11752.  End If 
  11753.  If A>STANZADIPARTENZA and A<STANZADIPARTENZA+LARGHEZZAMAPPASTANZE
  11754.   If A=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE-1
  11755.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11756.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11757.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11758.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11759.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11760.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11761.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11762.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11763.   Else 
  11764.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11765.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11766.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11767.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11768.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11769.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11770.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11771.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11772.   End If 
  11773.  End If 
  11774.  For B=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE To STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE Step LARGHEZZAMAPPASTANZE
  11775.   If A=B
  11776.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11777.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11778.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11779.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  11780.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11781.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11782.    DREZIONES(6,A,E)=$FFFF+E*$10000
  11783.    DREZIONES(7,A,E)=$FFFF+E*$10000
  11784.   End If 
  11785.   If A=B+LARGHEZZAMAPPASTANZE-1
  11786.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11787.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11788.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11789.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11790.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11791.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  11792.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11793.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11794.   End If 
  11795.  Next B
  11796.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1
  11797.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11798.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11799.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11800.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11801.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11802.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11803.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11804.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11805.  End If 
  11806.  If A>STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1 and A<STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11807.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11808.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11809.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11810.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11811.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11812.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11813.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11814.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11815.  End If 
  11816.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11817.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11818.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11819.   DREZIONES(2,A,E)=$FFFF+E*$10000
  11820.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11821.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11822.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11823.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11824.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11825.  End If 
  11826. Next A
  11827. End Proc